繁体   English   中英

链接器错误:Boost序列化库的静态链接

[英]Linker Error : Statically Linking of Boost Serialization Library

我正在尝试将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 to boost :: archive :: text_oarchive_impl :: text_oarchive_impl(std :: basic_ostream>&...,未签名的int 2的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 to

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

我在这里想念什么

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

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

这个命令行是完全错误的: -L标志告诉链接器在哪里寻找库; 不会告诉链接用你给的库。 尝试以下方法:

g++ serialize.cpp /usr/local/lib/libboost_serialization.a

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

 g++ myapp.cpp -o myapp -Wall -static -static-libgcc -I/usr/local/include -L/usr/local/lib -lboost_serialization -lpthread

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM