我必须在包含旧版本 C++ boost 库的机器上进行演示。具体来说boost::thread
,我需要在其中使用类的lock
成员函数mutex
。不幸的是,旧版本(1.33.1)不包含此方法。
我在目标机器上没有root权限,也无法卸载之前版本的boost。我的解决方案是在目标机器上预编译更新的库,然后链接到更新版本的库。
库编译部分非常顺利,一切顺利,但当我尝试编译时,它仍然表明它使用的是旧版本的 boost。我环顾四周(这里是 g++ noob),发现您可以手动指定一个位置,首先使用-L
and-I
标志来查找头文件和库。我尝试将这些与相对路径一起使用(因为我不知道将执行演示的目录,但我确实知道我的新 boost 库的相对路径),我想出了这个:
-bash-3.2$ g++ -I./include -L./lib main.cpp -lthread
/usr/bin/ld: cannot find -lthread
collect2: ld returned 1 exit status
我一直在尝试各种东西,例如指定更深入的包含/库目录的路径,但没有运气,我觉得我在死胡同。有任何想法吗?仅供参考,我正在寻找使用 boost 1.49.0。