【问题标题】:Clang compiler; 'ld' ignores specified library search path铿锵编译器; 'ld' 忽略指定的库搜索路径
【发布时间】: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

标签: linker clang


【解决方案1】:

好的,所以我找到了解决我自己问题的方法:

这很奇怪,不知何故 clang 只是不喜欢 -L ,但是当我尝试使用 -isysroot/var/sdk/ 时,clang 最终决定在我指定的目录中找到库(和标题)。

希望这能帮助其他有同样问题的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-25
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2018-10-23
    • 2023-03-21
    • 2013-12-01
    相关资源
    最近更新 更多