Tôi đang cố sử dụng thư viện JsonCpp. Tôi đang sử dụng Windows, sử dụng MinGW và CodeBlocks.Tham chiếu không xác định đối với _unwind_resume và __gxx_personality_v0
Khi tôi bao gồm bất kỳ thứ gì từ tiêu đề json, trình liên kết của tôi sẽ kích hoạt và đưa ra hai lỗi này. Tôi đã bắt đầu nhìn xung quanh và tôi thấy hai câu hỏi khác mà về cơ bản mô tả vấn đề của tôi:
problem with g++ and "undefined reference to `__gxx_personality_v0'"
What is __gxx_personality_v0 for?
Và nếu tôi khai báo hai biến mất tích như con trỏ void, giống như dưới đây, vấn đề biến mất:
void * __gxx_personality_v0=0;
void * _Unwind_Resume =0;
Tuy nhiên, tôi không hiểu tại sao lỗi này xảy ra. CodeBlocks được thiết lập để nó sử dụng migw32-g ++ cho các tệp cpp và cũng thêm tùy chọn -lstdC++ không khắc phục được sự cố. Không có tùy chọn -fno-exception (Tôi muốn ngoại lệ, hãy nhớ bạn, tôi chỉ đang cố gắng).
Tôi cũng bao gồm thư viện tăng trong cùng một tệp và điều đó không gây ra bất kỳ sự cố nào.
EDIT:
Sản lượng lỗi là chính xác những gì tôi đã nói trong tiêu đề của tôi: Tôi nhận được tổng cộng 22 tài liệu tham khảo không xác định để _Unwind_Resume và __gxx_personality_v0 trong liên kết. Mã của tôi là:
#include <boost/algorithm/string.hpp>
#include <include/json/value.h>
//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;
}
Lỗi này chỉ có khi tôi đưa/sử dụng thư viện JsonCPP. Bỏ ghi chú các dòng nhận xét sẽ khắc phục sự cố.
Sản lượng dòng lệnh là:
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
EDIT THỨ HAI: tôi thêm các dòng lệnh tôi sử dụng để biên dịch thư viện:
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
Vui lòng làm rõ câu hỏi của bạn. Nó có thể giúp hiển thị đầu ra lỗi thực tế. – Jerry
Bạn có đầu ra trình biên dịch không? Các dòng lệnh trình biên dịch và trình liên kết là gì? – jpalecek
Bạn đang liên kết với 'gcc' hoặc' g ++'? Lưu ý rằng sửa chữa của bạn sẽ gây ra dereference null và một vụ tai nạn khó chịu trong thời gian chạy khi một ngoại lệ được ném. – rubenvb