【发布时间】:2016-06-03 09:34:23
【问题描述】:
我正在尝试在 Ubuntu 系统上编译,其中我安装了两个不同版本的 boost:/usr/lib/ 中的 1.46.1 和 1.61.0 /usr/local/lib/。
我已经说过 1.61.0 给我带来了一些编译问题,但是当我有更多时间时,我宁愿不删除它来研究问题。我想我可以将makefile 引用到1.46.1,使用-I"/usr/include/boost" 获取1.46.1 源,然后使用-L /usr/lib 获取库。但仍然无法正常工作。
我怀疑-lboost_filesystem -lboost_system -lboost_date_time 的用法在某种程度上引用了 1.61.0,即使与 -L /usr/lib 一起使用(它指向 1.46.1 )。但是我一直无法找到有关链接器的此编译标志的信息。
如何确保那些-l 被引用到我想要的Boost 版本?
这是makefile 在链接时所做的示例(失败的部分):
Invoking: Cygwin C++ Linker
g++ -O0 -g3 -Wall -Wextra -o"../bin/MY_APP.exe" ../bin/objs/main.o ../bin/objs/FileLoad.o ../bin/objs/DatabaseLoad.o -L /usr/lib/mysql -L /usr/lib -lmysqlclient -lboost_filesystem -lboost_system -lboost_date_time
【问题讨论】:
-
在CMake中,你可以参考这个thick