2

x264 API を使用する小さな C アプリケーションを作成しようとしていますが、x264 libaray へのリンクを使用してコードをコンパイルする際に問題が発生しています。

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

./configure と 'make' を使用して、後者のサブディレクトリに x264 をインストールしました。そのため、リンクしたいと思うライブラリは /project/x264-snapshot-20120120-2245/libx264.a です

/project/mycode/ には、次のインポートを含む単一のソース コード ファイル (prototype.c) があります。

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

予想どおり、x264 ライブラリにリンクせずにコンパイルしようとすると、次のエラーが発生します。

/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

おそらく今では明らかなように、私はこれにかなり慣れていないので、簡単な解決策があることを願っています

4

1 に答える 1

2

将来これを見る人にとって、答えは次のとおりです。

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

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

于 2012-01-27T18:00:12.090 に答える