【发布时间】:2012-09-16 23:20:42
【问题描述】:
我正在尝试使用 clang (3.0) 构建和链接基于 cmake 的 C++ 项目。此项目链接到安装在自定义目录 /my/dir/ 中的几个库。此目录包含在 LD_LIBRARY_PATH 和 LIBRARY_PATH 环境变量中。项目可以使用 g++ 构建和链接。
cmake生成并执行的链接命令如下所示:
/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib
ld 然后抱怨以下消息:
/usr/bin/ld: cannot find -lmylib
每当我手动添加-L/my/dir/ 时,上面的链接命令运行良好。有没有办法在不指定-L 标志的情况下进行链接?
【问题讨论】:
-
LD_LIBRARY_PATH用于在启动时加载库,而不是用于解决链接依赖关系。也许您想使用LDFLAGS? -
有趣。我将 g++ 和 clang++ 与 CMake 互换使用,但从未遇到过类似的问题。我只是使用
link_directories()宏来定义库路径。