如何在OS X中为C安装libxml2?

时间:2017-02-28 00:48:38

标签: c macos libxml2

如何在OS X中安装libxml2?

编辑:

的main.c

#include <stdlib.h>
#include <libxml2>

int main() {
  printf("Hello, world!");
  return 0;
}

我得到的输出是:

  

错误:找不到“libxml2”文件

2 个答案:

答案 0 :(得分:2)

要使用libxml2或任何共享库,您需要...

  • 在代码中包含正确的头文件。
  • 添加头文件的路径。
  • 添加共享库的路径。
  • 添加共享库。

libxml2 docs不是最好的,但有一些code examples可供借鉴。从中我们看到我们需要#include <libxml/component.h> component,其中#include <libxml/xmlwriter.h>是您所包含的库的任何部分。例如,如果要编写XML文档,则为#include <stdlib.h> #include <libxml/xmlwriter.h> int main() { // Just something to demonstrate we can call functions and the linking worked xmlTextWriterPtr writer = xmlNewTextWriterFilename("example.com", 0); // Just something to do with the variable. printf("%p\n", writer); }

/usr/include/libxml2

然后你需要找到头文件。 OS X附带了libxml2,但它位于-I/usr/include/libxml2。因此需要使用-lxml2添加到包含路径。

标题包含各种函数的定义,但实际代码位于共享库中。它们位于正常位置,但您必须告诉编译器它与-L/some/path/一起使用它。幸运的是,它们位于默认位置,因此我们不必添加到共享库的常规搜索路径(即cc -I/usr/include/libxml2 -lxml2 -Wall test.c )。

把它们放在一起......

scala> val x = 1
x: Int = 1

scala> enter // How to implement this?
// Entering nested context (type exit to exit)

scala> val x = 2
x: Int = 2

scala> val y = 3
y: Int = 3

scala> exit // How to implement this?
// Exiting nested context

scala> assert(x == 1)

scala> y
<console>:12: error: not found: value y
       y
       ^

scala> 

答案 1 :(得分:1)

如果安装了Homebrew,则可以使用以下命令安装libxml2:

brew install libxml2