apt-get
我正在尝试编译一个 C 源文件,该文件需要与我通过(libclang.so)安装的动态库链接。
apt-get
在 中安装了 clang 共享库/usr/lib/x86_64-linux-gnu/
。以下是相关文件:
$ ls -l /usr/lib/x86_64-linux-gnu/libclang*
lrwxrwxrwx 1 root root /usr/lib/x86_64-linux-gnu/libclang-3.4.so -> libclang-3.4.so.1
-rw-r--r-- 1 root root /usr/lib/x86_64-linux-gnu/libclang-3.4.so.1
lrwxrwxrwx 1 root root /usr/lib/x86_64-linux-gnu/libclang-3.5.so -> libclang-3.5.so.1
-rw-r--r-- 1 root root /usr/lib/x86_64-linux-gnu/libclang-3.5.so.1
lrwxrwxrwx 1 root root /usr/lib/x86_64-linux-gnu/libclang.so.1 -> libclang-3.5.so.1
加载器似乎了解 libclang:
$ ldconfig -p | grep clang
libclang.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libclang.so.1
事实上,无论我尝试编译的源文件的内容是什么,只要它包含有效的代码,我的问题都是可以重现的。因此,我使用了这个源文件:
$ cat a.c
int main(int argc, char** argv) {
return 0;
}
针对 clang 进行编译失败:
$ gcc a.c -L/usr/lib/x86_64-linux-gnu -lclang
/usr/bin/ld: cannot find -lclang
collect2: error: ld returned 1 exit status
但针对 clang-3.5(或 clang-3.4)的编译成功:
$ gcc a.c -L/usr/lib/x86_64-linux-gnu -lclang-3.5
$
我确实需要能够使用-lclang
而不是进行链接-lclang-3.5
,因为实际上我无法控制此编译器选项在实际问题中的生成方式。我该怎么做才能使-lclang
工作?
我正在使用 Ubuntu 14.04 LTS 和 GCC 4.8.2。