2011-12-07 21 views
4

私はいくつかの簡単なカイロプログラムを試してみたいと思いますが、ソースファイルをどのように組み込むのかがわかりません。私はカイロのライブラリをインストールしている - それはgccが知っている方法の問題だけ...カイロ図書館へのコンパイル/リンク

  • だ私は(cairo.h含む).hファイルを持っている/インストールでは/ usr/localが/カイロ
  • が含まれます
  • 私はlibに/は/ usr/localにインストールは.dylibファイルを持っており、/ usr/local/libディレクトリ/カイロ

は、私が知っておくべき、インストールのいずれかの他のコンポーネントがありますか? (私は、ライブラリをインストールするには '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ライブラリを含めるには、どうしたらよいですか?

おかげで、

答えて

6

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> 
で始まる必要があります
+0

ありがとう!私の友人がpkg-configを実際に私に説明しました。それが助けになったので、私は正しい旗を見つけました、そして今、私はうまくコンパイルしています。また、私は質問で#を忘れましたが、私はそれを私のファイルに入れました。 あなたのコメントに「アップ」してみましたが、より高い評価が必要だと言いました。 – user1005954

+0

-lcairoは私が逃したものでした –

関連する問題