Ошибки C++ при компиляции

попробуйте это

if (!function_exists('getSetting')) 
{
    function getSetting($key)
    {
        return Setting::where('name', $key)->first()->val;
    }
}

И не забудьте добавить пространство имен App\Setting

Как работает функция

Например, если у вас есть настройка с именем app_name и пока вы передаете значение в функцию

Setting::where('name', $key)->first()->val;

getSetting('app_name');, он найдет first record с помощью клавиши app_name и выберет поле val значение из объекта и возвращает его

ОБНОВЛЕНО ДЛЯ КЭША

ЭТО НЕПРОВЕРЕННАЯ ФУНКЦИЯ

blockquote>
function getSetting($name)
    {
        if (Cache::has('setting_'.$name)) {
            return Cache::get('setting_'.$name);
        }

        $query = Setting::where('name', $key)->first();
        Cache::forever('setting_'.$name, $query->val);
        return $query->val;
    }

Это Запомнит кэш навсегда и посетит документацию, чтобы прочитать о cache

https://laravel.com/docs/5.8/cache

И не забудьте добавить use Illuminate\Support\Facades\Cache; в список пространств имен

27
задан Li357 13 November 2016 в 02:24
поделиться

2 ответа

Я полагаю, что вы пытаетесь скомпилировать main.cpp с помощью gcc, а не g++.

#include <string>
#include <stdio.h>
int main()
{
    std::string bla;
    bla = "BLA BLA";
    printf("%s\n",bla.c_str());
    return 0;
}

Если вы соберете приведенный выше фрагмент кода с помощью gcc, то получите ошибки, о которых вы упомянули. Если вы используете g++, то он собирается нормально, это имеет смысл, так как g++ убедится, что все нужные вещи собраны вместе при сборке C++.

68
ответ дан 28 November 2019 в 04:12
поделиться

Вам нужно связать ваш бинарный файл с libstdc ++. Вам необходимо явно указать это в командной строке, если вы используете gcc:

gcc -lstdc++ tmp.cpp

Если вы используете g ++, libstdc ++ будет связан по умолчанию:

g++ tmp.cpp
22
ответ дан ks1322 28 November 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: