0

我正在尝试将 Boost 序列化库链接到我的代码。但这似乎不起作用。

g++ serialize.cpp -L"/usr/local/lib/libboost_serialization.a"

错误 :

/tmp/ccw7eX4A.o: 在函数boost::archive::text_oarchive::text_oarchive(std::basic_ostream<char, std::char_traits<char> >&, unsigned int)': serializep.cpp:(.text._ZN5boost7archive13text_oarchiveC2ERSoj[_ZN5boost7archive13text_oarchiveC5ERSoj]+0x25): undefined reference toboost::archive::text_oarchive_impl::text_oarchive_impl(std::basic_ostream >&, unsigned int)' ....collect2: ld 返回 1 个退出状态

但是当我链接为共享库 g++ serialize.cpp -lboost_serialization 时,它工作正常。

我在这里想念什么

PS:具有相同问题的其他 StackOverflow 帖子没有适用于上述错误的答案

4

2 回答 2

1

g++ serialize.cpp -L"/usr/local/lib/libboost_serialization.a"

这个命令行是完全错误的:-L标志告诉链接器在哪里寻找库;它不会告诉链接器使用您提供的库。试试这个:

g++ serialize.cpp /usr/local/lib/libboost_serialization.a
于 2012-09-29T03:33:15.107 回答
0

由于我无法重现您的问题,所以我能做的最好是告诉您我通常如何针对 boost_serialization 进行静态编译:

 g++ myapp.cpp -o myapp -Wall -static -static-libgcc -I/usr/local/include -L/usr/local/lib -lboost_serialization -lpthread
于 2012-09-28T17:40:40.250 回答