怎么让 LD 链接系统目录下的 libclang*.a 文件?

2018-01-16 11:58:56 +08:00
 linux40

和别人一起用 clang 做毕设,用的 clang 的 C++ API。

官网的教程全是让你和 llvm+clang+clang-tools-extra 一起构建,这样的话,时间你懂的。。。

只设置-lLLVM-5.0的话,似乎不会链接libclang*.a这几个文件。

但是一个一个手打的话,太多了。。。没有一个统一的 flag 吗?

2565 次点击
所在节点    C
7 条回复
congeec
2018-01-16 13:11:12 +08:00
用的什么操作系统?
怎么加的 *, 是传参给 shell 了,还是传参给连接器了? anyway,你怎么传都不对
一般用 ld 链接到 libclang.so 就行了,ld ${LDFALGS} object.o -l/usr/lib/libclang.a.
ld 可以直接用-l 指定文件,也可以用 -L${directory} -lm 之类的来找到链接库
kiwi95
2018-01-16 13:18:39 +08:00
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/libclang.so

参考 1L,一般 * 号是 shell 扩展的,不是所有地方都可以用的
hackpro
2018-01-16 15:35:15 +08:00
指定文件 指定名字链接器优先还是会用 so 文件吧
forcecharlie
2018-01-16 17:39:43 +08:00
你还可以使用 -rpath 设置成 libclang.so 还可以设置 LD_LIBRARY_PATH,反正不像 Windows 的 dll 目录那么方便( Windows 存在 dll 注入。)
linux40
2018-01-16 18:51:34 +08:00
@congeec
@kiwi95
@hackpro
@forcecharlie
-lclang 就是链接 libclang.so ,光一个这个不行。
rogerchen
2018-01-16 22:43:13 +08:00
libclang 没有自己的 pkgconfig 么?
iceheart
2018-03-22 08:22:43 +08:00
- L/sopath

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/423279

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX