2012-01-24 4 views
2

x264 APIを使用する小さなCアプリケーションを作成しようとしていますが、x264 libarayへのリンクでコードをコンパイルする際に問題があります。c code Ubuntuからlibx264ライブラリにリンクする

/project /ディレクトリには、 /project/mycode /と /project/x264-snapshot-20120120-2245の2つのサブフォルダがあります。

./configureを使用して後者のサブディレクトリにx264をインストールしてから、「make」しました。このように私はリンクしたいと思うライブラリは/project/x264-snapshot-20120120-2245/libx264.a

In project/mycode /私は単一のソースコードファイル(prototype.c)を持っています。以下の輸入ました:予想通り、私はx264のライブラリにリンクせずにコンパイルしようとした場合

#include <stdio.h> 
#include <inttypes.h> 
#include "../x264-snapshot-20120120-2245/x264_config.h" 
#include "../x264-snapshot-20120120-2245/x264.h" 

は、私はエラーを取得する:

/project/mycode: gcc -o prototype prototype.c 
/tmp/cc5NwRTp.o: In function `main': 
prototype.c:(.text+0x6c): undefined reference to `x264_param_default_preset' 
prototype.c:(.text+0xf6): undefined reference to `x264_param_apply_profile' 
collect2: ld returned 1 exit status 

だから私は、私は上記のライブラリをリンクしてみてください、見つからない:

/project/mycode: gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -llibx264.a 
/usr/bin/ld: cannot find -llibx264.a 
collect2: ld returned 1 exit status 

私のようないくつかのバリエーション、試してみた:今では、おそらく明らかなように

gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -l ../x264-snapshot-20120120-2245/libx264.a 
gcc -o prototype prototype.c -I../x264-snapshot-20120120-2245/ -llibx264 
gcc -I ../x264-snapshot-20120120-2245/ -llibx264.a -o prototype prototype.c 

を、私はこれまでかなり新しいので、私は簡単な解決策

答えて

2
がある願っています

は、将来的には、このを見て、誰のために、答えは:

gcc -pthread -o prototype -L../x264-snapshot-20120120-2245/ -lx264 -lm 

-Lは、ライブラリのディレクトリを指定し、-lは番目の名前を指定しますeライブラリから 'lib'接頭辞と '.a'接尾辞を差し引いたものです。 x264ライブラリには、-lm-pthreadの引数も必要です。

関連する問題