gpt4 book ai didi

c++ - 忽略以前版本的 boost C++

转载 作者:行者123 更新时间:2023-11-28 08:06:40 24 4
gpt4 key购买 nike

我必须在一台包含旧版本 C++ boost 库的机器上进行演示。具体来说,我需要 boost::thread,我在其中使用 mutex 类的 lock 成员函数。很遗憾,旧版本 (1.33.1) 不包含此方法。

我在目标机器上没有root权限,我无法卸载之前版本的boost。我的解决方案是在目标机器上预编译更新后的库,然后只链接到更新版本的库。

库编译部分很顺利,一切顺利,但当我尝试编译时,它仍然显示它使用的是旧版本的 boost。我四处看了看(这里是 g++ 菜鸟),发现您可以首先使用 -L-I 手动指定一个位置来查找 header 和库旗帜。我尝试将它们与相对路径一起使用(因为我不知道将执行演示的目录,但我知道我的新 boost 库的相对路径),我想到了这个:

-bash-3.2$ g++ -I./include -L./lib main.cpp -lthread
/usr/bin/ld: cannot find -lthread
collect2: ld returned 1 exit status

我一直在尝试各种方法,例如在 include/library 目录中指定一条更深的路径,但没有成功,我觉得自己走到了死胡同。有任何想法吗?仅供引用,我希望使用 boost 1.49.0。

最佳答案

尝试:

g++ -I./include -L./lib main.cpp -lboost_thread

您需要为 -l 指定的库的名称来自 .so 文件:省略开头的 lib.so(例如 libboost_thread.so -> -lboost_thread)

关于c++ - 忽略以前版本的 boost C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com