Неопределенная ссылка на _раскрутку _резюме и __gxx _личность _v0

Я пытаюсь использовать библиотеку JsonCpp. Я на Windows, использую MinGW и CodeBlocks.

Когда я включаю что-либо из заголовков json, мой компоновщик взрывается и выдает эти две ошибки. Я начал искать и нашел эти два других вопроса, которые в основном описывают мою проблему:

проблема с g++ и «неопределенная ссылка на `__gxx _личность _v0 '»

Что такое __gxx _личность _v0 для?

И если я объявлю две отсутствующие переменные как недействительные указатели, как показано ниже, проблема исчезнет.:

void * __gxx_personality_v0=0;
void * _Unwind_Resume =0;

Однако я не понимаю, почему возникает эта ошибка. CodeBlocks настроен так, что он использует migw32 -g++ для файлов cpp, а также добавление опции -lstdc++ не решает проблему. Также не работает опция -fno -exception (Мне нужны исключения, заметьте, я просто пытался ).

Я также включаю в этот же файл библиотеку boost, и это не вызывает никаких проблем.

РЕДАКТИРОВАТЬ:

Вывод ошибки - это именно то, что я сказал в своем заголовке :Я получаю в общей сложности 22 неопределенных ссылки на _Раскрутить _Резюме и __gxx _личность _v0 во время связывания. Мой код :

#include 
#include 
//void * __gxx_personality_v0=0;
//void * _Unwind_Resume =0;
int main () {
    std::string str1("Hello world!");
    boost::to_upper(str1);
    Json::Value k;
    return 0;
}

. Ошибка возникает только тогда, когда я включаю/использую библиотеку JsonCPP. Раскомментирование закомментированных строк устраняет проблему.

Вывод командной строки::

mingw32-g++.exe -Wall -fexceptions  -g  -DSFML_DYNAMIC   -IC:\Users\Svalorzen\Documents\Projects\boost_1_49 -IC:\Users\Svalorzen\Documents\Projects\jsoncpp-src-0.5.0 -IC:\Users\Svalorzen\Documents\Projects\SFML-1.6\include -IC:\Users\Svalorzen\Documents\Projects\hge181\include  -c C:\Users\Svalorzen\Documents\Projects\test\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -LC:\Users\Svalorzen\Documents\Projects\jsoncpp-src-0.5.0 -LC:\Users\Svalorzen\Documents\Projects\SFML-1.6\lib -LC:\Users\Svalorzen\Documents\Projects\hge181\lib  -o bin\Debug\test.exe obj\Debug\main.o   -fno-exceptions -lsfml-graphics -lsfml-window -lsfml-system  C:\Users\Svalorzen\Documents\Projects\jsoncpp-src-0.5.0\libs\mingw\libjson_mingw_libmt.a C:\Users\Svalorzen\Documents\Projects\hge181\lib\gcc\libhge.a C:\Users\Svalorzen\Documents\Projects\hge181\lib\gcc\libhelp.a 
Output size is 1.22 MB
Process terminated with status 0 (0 minutes, 3 seconds)
0 errors, 0 warnings

ВТОРОЕ РЕДАКТИРОВАНИЕ :Я добавляю командные строки, которые использую для компиляции библиотеки:

g++ -o buildscons\mingw\src\lib_json\json_reader.o -c -DWIN32 -DNDEBUG -D_MT -Iinclude src\lib_json\json_reader.cpp
g++ -o buildscons\mingw\src\lib_json\json_value.o -c -DWIN32 -DNDEBUG -D_MT -Iinclude src\lib_json\json_value.cpp
g++ -o buildscons\mingw\src\lib_json\json_writer.o -c -DWIN32 -DNDEBUG -D_MT -Iinclude src\lib_json\json_writer.cpp
ar rc buildscons\mingw\src\lib_json\libjson_mingw_libmt.a buildscons\mingw\src\lib_json\json_reader.o buildscons\mingw\src\lib_json\json_value.o buildscons\mingw\src\lib_json\json_writer.o
ranlib buildscons\mingw\src\lib_json\libjson_mingw_libmt.a

11
задан Community 23 May 2017 в 12:02
поделиться