簡體   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