【发布时间】:2018-01-06 13:32:04
【问题描述】:
我正在尝试使用clang 使用以下命令编译程序:
clang test.c -otest -L/var/sdk/usr/lib/
但是,ld 似乎完全忽略了这一点,而是在默认目录中搜索库,留下了这个错误:
ld: file not found: /usr/lib/system/libcache.dylib for architecture armv7
我做错了吗?我该如何解决这个问题?
【问题讨论】:
-
你只是告诉编译器在哪里可以找到它链接的库。您还必须告诉操作系统在运行时在哪里可以找到库!您通常可以在编译后的二进制文件本身中对这些信息进行编码——我不知道您使用的是什么操作系统,但在 Linux 上的 gcc 上您会使用
-Wl,-rpath,/var/sdk/usr/lib,并且 clang 往往具有与 gcc 类似的选项,所以值得一枪。 -
不走运,clang 不知道 -Wl 或 -rpath 选项是什么。另外,我在 arm-apple-darwin14 (iPhone) 上使用 ios