增强C++;版本控制问题 我正在编译一个来自导入项目(由别人创建的项目)的C++代码。我得到了这个错误: libboost_system.so.5 needed by [...] not found libboost_thread-mt.so.5 needed by [...] not found

增强C++;版本控制问题 我正在编译一个来自导入项目(由别人创建的项目)的C++代码。我得到了这个错误: libboost_system.so.5 needed by [...] not found libboost_thread-mt.so.5 needed by [...] not found,c++,boost,linker,C++,Boost,Linker,很明显,编译器/链接器查找此库,但未能找到它们。在我的系统上,执行ls-l/usr/lib64/libboost.*,它显示: /usr/lib64/libboost_date_time-mt.so.1.53.0 /usr/lib64/libboost_date_time.so.1.53.0 /usr/lib64/libboost_iostreams-mt.so.1.53.0 /usr/lib64/libboost_iostreams.so.1.53.0 /usr/lib64/libboost_

很明显,编译器/链接器查找此库,但未能找到它们。在我的系统上,执行
ls-l/usr/lib64/libboost.*
,它显示:

/usr/lib64/libboost_date_time-mt.so.1.53.0
/usr/lib64/libboost_date_time.so.1.53.0
/usr/lib64/libboost_iostreams-mt.so.1.53.0
/usr/lib64/libboost_iostreams.so.1.53.0
/usr/lib64/libboost_program_options-mt.so.1.53.0
/usr/lib64/libboost_program_options.so.1.53.0
/usr/lib64/libboost_system-mt.so.1.53.0
/usr/lib64/libboost_system.so.1.53.0
/usr/lib64/libboost_thread-mt.so.1.53.0
系统上似乎存在Boost库,但版本不匹配。通常,对于Linux系统,库版本号位于库本身的名称中,因此我假设我的链接器查找版本5。令人惊讶的是,根据官方的说法,Boost C++ ++版本不存在“强>5</强>”,最后一个版本是<强> 1.63.0>/P> 有人对这个版本的游戏有想法吗?
谢谢这个
。所以.5
看起来可疑。您可能需要修复该Makefile。通常,只需从源代码编译所有必需的组件。您的1.53.0版应该可以。这是
cmake
项目还是
autotools
或某个IDE?您可能需要更改某些特定文件中boost依赖项的名称(CMakeLists.txt用于
cmake
或configure.in文件用于
autotools
或IDE中的项目属性),它是
qmake
。Ii是一个使用.pro的Qt项目。我将看到我可以更改的内容通常,您不必在构建设置中指定任何版本(即库名称中的版本标记)。您可能需要测试Boost的最低版本,但就链接而言,您指定的是
-lboost\u系统
,没有任何版本。在文件系统中,应该有
libboost\u system.so
,它通常是指向版本控制的实际库的链接,如
libboost\u system.so.1.53.0
。该链接通常由-dev/-develop包提供,必须安装该包才能构建代码。因此,如果必须在构建脚本中拼写库版本,则很可能是做错了什么。