【发布时间】:2014-02-14 23:32:51
【问题描述】:
我在我的应用程序中使用 libxml2 并且一直在动态链接它。它工作正常,直到我开始注意到动态库在 10.9 OSX 上更新,当应用程序在 10.8 和 10.7 上运行时,我看到由于 libxml2 版本较低而导致的问题。 看到的问题是 警告:使用旧 207 针对 libxml 209 编译的程序 我似乎遇到了解析错误,但是相同的代码在 10.9 版本 209 中工作正常
为了避免这个问题,我想静态编译我的代码以使用 libxml2.a。我遇到了多个问题。由于我机器上安装的 libxml2.a 版本中缺少符号,我无法编译。
我从 git repo 下载最新的代码并编译它。我没有安装它,而是让我的程序指向新的静态库。我还是有同样的问题。
Compile Flags
Ld /devel/Build/Products/Debug/SecurityCoreUpdater normal x86_64
cd /devel/BPSUpdater
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -L/devel/Build/Products/Debug -F/devel/Build/Products/Debug -filelist /devel/Build/Intermediates/BPSUpdater.build/Debug/BPSUpdater.build/Objects-normal/x86_64/SecurityCoreUpdater.LinkFileList -mmacosx-version-min=10.7 /devel/libxml2.a -lCF_LSXClient
Undefined symbols for architecture x86_64:
"_libiconv", referenced from:
_xmlIconvWrapper in libxml2.a(encoding.o)
"_libiconv_close", referenced from:
_xmlFindCharEncodingHandler in libxml2.a(encoding.o)
_xmlCharEncCloseFunc in libxml2.a(encoding.o)
"_libiconv_open", referenced from:
_xmlFindCharEncodingHandler in libxml2.a(encoding.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
有解决办法吗?我很困惑如何解决这个问题。我不想为此更改解析器库。这意味着我需要重新连接很多代码。请帮忙。
问候, 瓦伦
【问题讨论】:
标签: macos xcode5 osx-mavericks libxml2