9

我正在尝试使用 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标志的情况下进行链接?

4

1 回答 1

9

环境变量(以及它在其他基于 UNIX 的平台上的$LD_LIBRARY_PATH各种替代品)在运行时而不是链接时用于查找库。

使用-L是正确的方法,不能避免。

注意:在 Linux 下更好的方法(你没有指定你的平台,所以我猜)是正确配置文件/etc/ld.so.conf.d/并避免$LD_LIBRARY_PATH完全使用。

于 2012-09-25T12:33:13.283 回答