【问题标题】:What is correct way to load zlib via LDFLAGS in a Makefile under LLVM?在 LLVM 下的 Makefile 中通过 LDFLAGS 加载 zlib 的正确方法是什么?
【发布时间】:2012-04-08 06:47:24
【问题描述】:

我的 CFLAGS 有

-I../../usr/local/sys/usr/include

正确加载 zlib.h

LDFLAGS 是

LDFLAGS = -L../../usr/local/sys/usr/lib -lxml2 -lzlib

但是当链接器尝试链接时发生以下情况

1>   + Linking project files...
1>  ld: library not found for -lzlib
1>  collect2: ld returned 1 exit status
1>  make: *** [link] Error 1

可能是什么问题?

windows7下的环境是iosdevenv(所以目录结构和mac os上的不一样)

【问题讨论】:

    标签: c++ ios makefile


    【解决方案1】:

    解决方案是使用 -lz 标志而不是 -lzlib。

    经过测试,已链接项目。

    【讨论】:

      【解决方案2】:

      libz.dylib 位于 iPhone SDK 的 /usr/lib 中。

      找出libz.dylib 的正确路径,然后更改LDFLAGS 中的“-L”路径以匹配它。

      在我的机器上是/Application/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/libz.dylib

      【讨论】:

      • Michael,我实际上是在 windows 7 下编译的。路径正确(libxml2.dylib 加载正确,libz.dylib 在同一目录中)我正在使用 iosdevenv
      • 如果您在最初的问题中明确表示(您使用的是 Windows 7 和一些非标准开发环境),那就太好了。无论如何,我怀疑您没有解析正确的目录(“../../usr/local/sys/usr/lib”的路径对我来说看起来很可疑,其中两次提到“usr”)。我的答案仍然成立,找出正确的libz.dylib 的路径,你应该没问题。
      • 我会编辑问题,抱歉。这是证据:clip2net.com/clip/m0/1333868910-clip-21kb.png
      • 我在您的屏幕截图中看到感叹号...表明该文件存在问题(即无法解析的符号链接?)。让 libz 图标看起来像 libxml2 一样漂亮(没有感叹号),我认为你的问题会消失。
      • 我从mac上复制了文件clip2net.com/clip/m0/1333869795-clip-23kb.png 问题仍然存在......我将在早上再次解决。感谢您的建议迈克尔!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 2019-12-20
      • 2012-05-27
      • 2012-11-17
      • 1970-01-01
      相关资源
      最近更新 更多