libboost _ * .so:文件无法识别:文件被截断当使用libtool和automake动态链接生成makefile时

时间:2014-05-07 03:05:14

标签: c++ boost dynamic-linking dynamic-library

我收到以下错误:

../../../external/boost-1.55.0-x86_64-linux-gcc-4.8.2/lib/libboost_system.so: file not recognized: File truncated

如果我交换boost_filesystem和boost_system的顺序,我会收到以下错误:

../../../external/boost-1.55.0-x86_64-linux-gcc-4.8.2/lib/libboost_filesystem.so: file not recognized: File truncated

根据我的知识正确构建了Boost。构建期间没有错误。正在进行链接的makefile如下:

libtool: link: g++ -g -O2 -pthread -Wl,-rpath=../../../external/boost-1.55.0-x86_64-linux-gcc-4.8.2/lib -o xml_wrapper_tester xml_wrapper_tester-runner.o  - L../../../external/boost-1.55.0-x86_64-linux-gcc-4.8.2/lib -lboost_wserialization -lboost_timer -lboost_date_time -lboost_iostreams -lboost_chrono -lboost_atomic -lboost_serialization -lboost_locale -lboost_log -lboost_thread -lboost_regex -lboost_log_setup -lboost_system -lboost_filesystem ../xml_wrapper/.libs/libxml_wrapper.a-pthread
../../../external/boost-1.55.0-x86_64-linux-gcc-4.8.2/lib/libboost_system.so: file not recognized: File truncated
collect2: error: ld returned 1 exit status
make[2]: *** [xml_wrapper_tester] Error 1
make[2]: Leaving directory /home/mehoggan/Devel/RuleSimulator/src/xml/xml_wrapper_tester'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mehoggan/Devel/RuleSimulator/src/xml'
make: *** [all] Error 2

1 个答案:

答案 0 :(得分:1)

听起来你的libboost *文件已损坏。

问:你自己建造了吗?如果是这样,我建议“make clean”(或来自你的构建根目录的“rm -rf”),并从头开始重建。

在执行此操作时,请仔细检查是否存在任何构建错误。

我会非常认真地遵循这些指示:

http://www.boost.org/doc/libs/1_55_0/more/getting_started/unix-variants.html

'希望有所帮助