我正在尝试测试一些简单的Cairo程序,但是在确定如何包括源文件时遇到了麻烦。我已经安装了开罗库-这只是如何让gcc知道的问题...


我在/ usr / local / include / cairo中安装了.h文件(包括cairo.h)
我在/ usr / local / lib和/ usr / local / lib / cairo中安装了.dylib文件


我应该注意安装的其他组件吗? (我只是做了'make install'安装库)

我试图像这样编译:

$ gcc cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/


我的cairoTest.c文件开始于:

include <cairo.h>


gcc正在找到cairo.h,但显示以下错误消息。我认为它没有正确链接到.dylib文件,但是我不确定。我仍然不熟悉编译/链接。

gcc cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/cairo
Undefined symbols for architecture x86_64:
  "_cairo_image_surface_create", referenced from:
      _main in ccVd9Pet.o
  "_cairo_create", referenced from:
      _main in ccVd9Pet.o
  "_cairo_scale", referenced from:
      _main in ccVd9Pet.o
  "_cairo_set_line_width", referenced from:
      _main in ccVd9Pet.o
  "_cairo_set_source_rgb", referenced from:
      _main in ccVd9Pet.o
  "_cairo_rectangle", referenced from:
      _main in ccVd9Pet.o
  "_cairo_stroke", referenced from:
      _main in ccVd9Pet.o
  "_cairo_surface_write_to_png", referenced from:
      _main in ccVd9Pet.o
  "_cairo_destroy", referenced from:
      _main in ccVd9Pet.o
  "_cairo_surface_destroy", referenced from:
      _main in ccVd9Pet.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [all] Error 1


要在编译中包含Cairo库,我应该采取什么不同的措施?

谢谢,

最佳答案

尝试编译

 gcc -Wall -g cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/ -lcairo -o cairoTest


(但您可能需要其他库,可能通过$(pkg-config --cflags --libs cairo)或类似库)

您的文件应以

 #include  <cairo.h>

10-04 12:24
查看更多