汇编/链接到开罗图书馆

use*_*954 4 gcc compilation include 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/
Run Code Online (Sandbox Code Playgroud)

我的cairoTest.c文件以:

include <cairo.h>
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我应该采取哪些不同的方式将Cairo库包含在我的编译中?

谢谢,

Bas*_*tch 8

尝试编译

 gcc -Wall -g cairoTest.c -I/usr/local/include/cairo -L/usr/local/lib/ -lcairo -o cairoTest
Run Code Online (Sandbox Code Playgroud)

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

你的文件应该从

 #include  <cairo.h>
Run Code Online (Sandbox Code Playgroud)