问题描述
这里的所有 clang/llvm 新手...
我刚刚在我的 Linux Mint 20 Ulyana(基于 Ubuntu 20.04 Focal Fossa)上安装了 llvm 和 clang,以便将它与 Crystal 语言自动绑定生成工具“crystal_lib”一起使用。
clang 已正确安装:
$ clang --version
clang version 10.0.0-4ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
但是 ld(由“crystal_lib”工具的 Makefile 使用)找不到它:
$ make
crystal build src/main.cr
/usr/bin/ld: impossibile trovare -lclang
collect2: error: ld returned 1 exit status
$ ld -lclang --verbose
ld: modalità elf_x86_64
tentativo di aprire /usr/local/lib/x86_64-linux-gnu/libclang.so non riuscito
tentativo di aprire /usr/local/lib/x86_64-linux-gnu/libclang.a non riuscito
tentativo di aprire /lib/x86_64-linux-gnu/libclang.so non riuscito
tentativo di aprire /lib/x86_64-linux-gnu/libclang.a non riuscito
tentativo di aprire /usr/lib/x86_64-linux-gnu/libclang.so non riuscito
tentativo di aprire /usr/lib/x86_64-linux-gnu/libclang.a non riuscito
tentativo di aprire /usr/lib/x86_64-linux-gnu64/libclang.so non riuscito
tentativo di aprire /usr/lib/x86_64-linux-gnu64/libclang.a non riuscito
tentativo di aprire /usr/local/lib64/libclang.so non riuscito
tentativo di aprire /usr/local/lib64/libclang.a non riuscito
tentativo di aprire /lib64/libclang.so non riuscito
tentativo di aprire /lib64/libclang.a non riuscito
tentativo di aprire /usr/lib64/libclang.so non riuscito
tentativo di aprire /usr/lib64/libclang.a non riuscito
tentativo di aprire /usr/local/lib/libclang.so non riuscito
tentativo di aprire /usr/local/lib/libclang.a non riuscito
tentativo di aprire /lib/libclang.so non riuscito
tentativo di aprire /lib/libclang.a non riuscito
tentativo di aprire /usr/lib/libclang.so non riuscito
tentativo di aprire /usr/lib/libclang.a non riuscito
tentativo di aprire /usr/x86_64-linux-gnu/lib64/libclang.so non riuscito
tentativo di aprire /usr/x86_64-linux-gnu/lib64/libclang.a non riuscito
tentativo di aprire /usr/x86_64-linux-gnu/lib/libclang.so non riuscito
tentativo di aprire /usr/x86_64-linux-gnu/lib/libclang.a non riuscito
ld: impossibile trovare -lclang
看起来 ld 无法找到 libclang.so 和/或 libclang.a。
我的 /usr/lib/clang/10.0.0/lib/linux 目录中有完整的 libclang_xxxxxx.o/a/so/syms 文件集合,但不是 ld 看起来的简单“libclang.so”寻找。
/usr/lib/llvm-10/lib/clang/10.0.0/lib/linux $ ls
clang_rt.crtbegin-i386.o libclang_rt.gwp_asan-x86_64.a libclang_rt.scudo_standalone-x86_64.a
clang_rt.crtbegin-x86_64.o libclang_rt.hwasan_cxx-x86_64.a libclang_rt.scudo-x86_64.a
clang_rt.crtend-i386.o libclang_rt.hwasan_cxx-x86_64.a.syms libclang_rt.scudo-x86_64.so
clang_rt.crtend-x86_64.o libclang_rt.hwasan-x86_64.a libclang_rt.stats_client-i386.a
libclang_rt.asan_cxx-i386.a libclang_rt.hwasan-x86_64.a.syms libclang_rt.stats_client-x86_64.a
libclang_rt.asan_cxx-x86_64.a libclang_rt.hwasan-x86_64.so libclang_rt.stats-i386.a
libclang_rt.asan_cxx-x86_64.a.syms libclang_rt.lsan-i386.a libclang_rt.stats-x86_64.a
libclang_rt.asan-i386.a libclang_rt.lsan-x86_64.a libclang_rt.tsan_cxx-x86_64.a
libclang_rt.asan-i386.so libclang_rt.msan_cxx-x86_64.a libclang_rt.tsan_cxx-x86_64.a.syms
libclang_rt.asan-preinit-i386.a libclang_rt.msan_cxx-x86_64.a.syms libclang_rt.tsan-x86_64.a
libclang_rt.asan-preinit-x86_64.a libclang_rt.msan-x86_64.a libclang_rt.tsan-x86_64.a.syms
libclang_rt.asan-x86_64.a libclang_rt.msan-x86_64.a.syms libclang_rt.ubsan_minimal-i386.a
libclang_rt.asan-x86_64.a.syms libclang_rt.profile-i386.a libclang_rt.ubsan_minimal-i386.so
libclang_rt.asan-x86_64.so libclang_rt.profile-x86_64.a libclang_rt.ubsan_minimal-x86_64.a
libclang_rt.builtins-i386.a libclang_rt.safestack-i386.a libclang_rt.ubsan_minimal-x86_64.a.syms
libclang_rt.builtins-x86_64.a libclang_rt.safestack-x86_64.a libclang_rt.ubsan_minimal-x86_64.so
libclang_rt.cfi_diag-i386.a libclang_rt.scudo_cxx-i386.a libclang_rt.ubsan_standalone_cxx-i386.a
libclang_rt.cfi_diag-x86_64.a libclang_rt.scudo_cxx_minimal-i386.a libclang_rt.ubsan_standalone_cxx-x86_64.a
libclang_rt.cfi-i386.a libclang_rt.scudo_cxx_minimal-x86_64.a libclang_rt.ubsan_standalone_cxx-x86_64.a.syms
libclang_rt.cfi-x86_64.a libclang_rt.scudo_cxx-x86_64.a libclang_rt.ubsan_standalone-i386.a
libclang_rt.dd-x86_64.a libclang_rt.scudo-i386.a libclang_rt.ubsan_standalone-i386.so
libclang_rt.dfsan-x86_64.a libclang_rt.scudo-i386.so libclang_rt.ubsan_standalone-x86_64.a
libclang_rt.dfsan-x86_64.a.syms libclang_rt.scudo_minimal-i386.a libclang_rt.ubsan_standalone-x86_64.a.syms
libclang_rt.dyndd-x86_64.so libclang_rt.scudo_minimal-i386.so libclang_rt.ubsan_standalone-x86_64.so
libclang_rt.fuzzer-i386.a libclang_rt.scudo_minimal-x86_64.a libclang_rt.xray-basic-x86_64.a
libclang_rt.fuzzer_no_main-i386.a libclang_rt.scudo_minimal-x86_64.so libclang_rt.xray-fdr-x86_64.a
libclang_rt.fuzzer_no_main-x86_64.a libclang_rt.scudo_standalone_cxx-i386.a libclang_rt.xray-profiling-x86_64.a
libclang_rt.fuzzer-x86_64.a libclang_rt.scudo_standalone_cxx-x86_64.a libclang_rt.xray-x86_64.a
libclang_rt.gwp_asan-i386.a libclang_rt.scudo_standalone-i386.a
如果我知道我必须链接到哪个文件,我会很高兴ln -s libclang.so.1 libclang.so
。
有什么建议吗?有其他人遇到过类似的问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)