在OSX上使用C编译或使用libxml

时间:2011-03-29 22:15:41

标签: c macos libxml2

如果我想编译一个使用libxml的c源文件,如何在mac osx上设置libxml,以便我的源文件能够正确编译并准备好运行?

到目前为止我一直在使用XCode,但已切换到TextMate&终端,如果我想使用libxml,我需要创建一个makefile吗?这将如何工作?

由于

编辑:

我使用当前导入

#include <libxml/xmlmemory.h>
#include <libxml/parser.h>

4 个答案:

答案 0 :(得分:5)

10.6上的libxml2发行版的标头位于/usr/include/libxml2/内。不幸的是,只有/usr/include部分位于系统默认标题搜索路径中。因此,您需要在命令行中明确地包含它(或者让您的#includes还包含其他libxml2文件夹)。图书馆本身位于通常的/usr/lib/libxml2.dylib

因此,使用以下命令编译程序:

gcc source.c -I/usr/include/libxml2 -lxml2 -o output

答案 1 :(得分:3)

无需设置。将-lxml2添加到链接命令。

如果你只有一个简单的单源文件“project”:

gcc yourSourceFile.c -I/usr/include/libxml2 -lxml2 -o executableProgram

答案 2 :(得分:2)

您还可以使用xml2-config获取要使用的编译标志。

kjp@vbox:~/Dev/ScratchDir$ xml2-config --cflags --libs
-I/usr/include/libxml2
-lxml2
kjp@vbox:~/Dev/ScratchDir$

答案 3 :(得分:2)

我通过简单的修改投票支持Kjp的回答。 如何将xml2-config包含在gcc命令本身中 -     

g ++ -o bin_name`xml2-config --cflags` main.c`xml2-config --libs`

    即使未在默认位置安装libxml或更改标志名称(将来),这也应该有效。

干杯!