我希望使用boost 1.69编译(c++/cmake)代码。我在七号列车上。
之后:
sudo yum install boost-devel.x86.64
代码编译得很好,但使用的默认版本是1.53。
如果我查看安装在/lib64中的库,例如:
>> ls -al /lib64/ | grep boost_timer
lrwxrwxrwx. 1 root root 27 Jun 9 11:50 libboost_timer-mt.so -> libboost_timer-mt.so.1.53.0
-rwxr-xr-x. 1 root root 19848 Apr 1 04:26 libboost_timer-mt.so.1.53.0
boost 1.69的yum安装也是可用的。所以我可以:
sudo yum install boost169-devel.x86_64
,例如更新/lib64 64/的内容。
>> ls -al /lib64/ | grep boost_timer
lrwxrwxrwx. 1 root root 27 Jun 9 11:50 libboost_timer-mt.so -> libboost_timer-mt.so.1.53.0
-rwxr-xr-x. 1 root root 19848 Apr 1 04:26 libboost_timer-mt.so.1.53.0
lrwxrwxrwx. 1 root root 24 Jun 9 11:50 libboost_timer.so -> libboost_timer.so.1.53.0
-rwxr-xr-x. 1 root root 19848 Apr 1 04:26 libboost_timer.so.1.53.0
-rwxr-xr-x. 1 root root 24104 Apr 23 2019 libboost_timer.so.1.69.0
此外:
>> ls /usr/include/ | grep boost
boost
boost169
此时,我的工作区仍然编译,但仍然使用1.53。
我希望我的工作区使用1.69进行编译。我可以通过拙劣的FindBoost.cmake来实现这一点,但这并不是要做的事情。
我还尝试(yum)删除了boost-dev.x86-64,它删除了/usr/include/boost文件夹和/lib64中的相关so文件,例如:
>> ls -al /lib64/ | grep boost_timer
libboost_timer-mt.so.1.53.0
libboost_timer.so.1.53.0
libboost_timer.so.1.69.0
(请注意,不再存在"libboost_timer-mt.so")
在这一点上,我相信我也可以通过手动创建符号链接/usr/include/boost和/ like 64/libboost_*来编译我的工作区,但这也不像是要做的干净的事情。
(注意:我创建了指向/usr/include/boost 64/boost的符号链接/usr/include/boost,而且cmake确实停止了对BOOST_INCLUDE_DIR的抱怨,但由于我没有为库创建符号链接,cmake仍然抱怨这些链接)。
是否有更干净的替代方法来手动创建符号链接?
编辑:我确实为编译器抱怨的所有boost相关库创建了手动符号链接,我可以确认这是有效的。
发布于 2020-06-09 13:19:39
很明显,这里有BOOST_INCLUDE_DIR
,您可以使用它来控制boost头,那么为什么不只是
cmake -DBOOST_INCLUDEDIR=/usr/include/boost169 \
-DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
...
发布于 2022-02-17 02:18:30
最接近设置CMake默认值的方法是将BOOST_INCLUDEDIR
和BOOST_LIBRARYDIR
设置为环境变量。FindBoost.cmake
在环境中显式地查找这些变量(默认情况下CMake不会这样做)。因此,您可以在某个地方全局调用export BOOST_INCLUDEDIR=/usr/include/boost169
和export BOOST_LIBRARYDIR=/usr/lib64/boost169
,也可以使用BOOST_INCLUDEDIR=/usr/include/boost169 BOOST_LIBRARYDIR=/usr/lib64/boost169 ./mybuild.sh
(当然,假设mybuild.sh
最终调用CMake或处理这些环境变量本身)包装命令调用。
https://stackoverflow.com/questions/62280304
复制相似问题