在OS X Yosemite,xCode 6上构建libxml2-2.9.2

时间:2014-12-11 17:54:16

标签: ios objective-c xcode macos libxml2

我有一个使用xmppframework的xcode项目。

根据https://github.com/robbiehanson/KissXML/wiki/GettingStarted,此框架的KissXML模块需要libxml2。

我按照这些说明操作,并从ftp://xmlsoft.org/libxml2/下载了libxml2。 具体来说,我下载并提取了LATEST_LIBXML2,结果证明是libxml2-2.9.2。

然后我将相关的标题搜索路径添加到我的xcode项目中,并且

  

-l" lxml2"

到我的链接器标志。

但是,当我构建项目时,它会出现以下链接器错误:

  

ld:找不到-llxml2的库   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我怀疑这是因为我需要自己构建libxml2,以获取库二进制文件。但是,我无法在OS X Yosemite,xcode 6上找到执行此操作的具体说明。

有没有人有关于在OS X Yosemite,Xcode 6上构建libxml2-2.9.2的任何说明,以便我可以在我的项目中链接到它?

或者,如果有人可以为libxml2-2.9.2提供二进制文件,那么这也可能有用。我确实找到http://www.explain.com.au/oss/libxml2xslt.html#id2658905,但这个人似乎只为旧版本的libxml2提供二进制文件,而不是当前版本。 谢谢!

致以最诚挚的问候,

克里斯

2 个答案:

答案 0 :(得分:1)

我在Solaris SPARC,Linux和Windows上构建了 LibXML2 (最新版本2.9.2)。我从未使用过MacOS(差评=))。

这是我的brief instruction。您可以尝试类似的方式。

cd /opt/mydir/libxml2
mkdir linux-gcc3
gunzib -c libxml2-2.9.2.tar.gz | tar xvf –
cd libxml2-2.9.2
./configure --prefix=/opt/mydir/libxml2/linux-gcc3 --enable-static --disable-shared 2>&1 | tee conf.log
 ## 64 bit
 ## ./configure CC="cc -m64" --prefix=/opt/mydir/libxml2/linux-gcc3 --enable-static --disable-shared 2>&1 | tee conf.log
 make 2>&1 | tee make.log
 make install

答案 1 :(得分:1)

首先,该库名为libxml2,因此该链接应为-lxml2而不是-llxml2

其次,OSX / iOS已经存在libxml2 内置,您实际上可以在项目的链接库部分中引用该库。除非您真的需要更新版本的新功能,否则通常不需要构建库。

在项目的“常规”标签中,使用Linked frameworks and Libraries添加对libxml2.dylib的引用。

您引用的页面上的说明使用的是OSX / iOS上已有的libxml2版本。您无需下载libxml2即可使其正常工作。

如果您安装命令行开发人员工具,页面上提到的/usr/include/libxml2位置也适用于您 - 在终端提示符下执行xcode-select --install