如果我想编译一个使用libxml的c源文件,如何在mac osx上设置libxml,以便我的源文件能够正确编译并准备好运行?
到目前为止我一直在使用XCode,但已切换到TextMate&终端,如果我想使用libxml,我需要创建一个makefile吗?这将如何工作?
由于
编辑:
我使用当前导入
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
答案 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或更改标志名称(将来),这也应该有效。
干杯!