Clang链接器不会查看LD_LIBRARY_PATH

时间:2012-09-25 12:29:58

标签: c++ cmake clang ld

我正在尝试使用clang(3.0)构建和链接C ++,基于cmake的项目。此项目链接到安装在自定义目录/ my / dir /中的多个库。该目录包含在LD_LIBRARY_PATH和LIBRARY_PATH环境变量中。项目使用g ++构建和链接。

cmake生成并执行的链接命令如下所示:

/usr/bin/clang++ -O3 stuff.cpp.o -o stuff -rdynamic -lmylib

然后抱怨以下消息:

/usr/bin/ld: cannot find -lmylib

每当我手动添加-L/my/dir/时,上面的链接命令就可以正常运行。有没有指定-L标志的链接方式?

1 个答案:

答案 0 :(得分:7)

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

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

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