2011-03-30 10 views
11

私はUbuntu 10.10でプロジェクトの依存関係をコンパイルしていますが、デフォルトで/ usr/localにインストールするのではなく、代わりに/ tmp/stage/usr/local。 CMakeに、このプロジェクトのビルドファイルを生成するために呼び出すときに、このカスタムインストールされた依存関係の場所を通知するにはどうすればいいですか?CMakeがカスタムインストールパスでFFMPEGを見つけられない

私はCMakeの2.8.1を実行している、と私はそう

cmake -D CMAKE_PREFIX_PATH=/tmp/stage/usr/local 

のように、cmakeのコマンドラインでCMAKE_PREFIX_PATHを設定しようとしているが、これは違いを確認していないようです - プロジェクトはしていません依存関係を検出するようです。

それが重要また、もし、問題のプロジェクトはOpenCVの2.2で、問題の依存性がFFMPEGです...

+0

私は/ tmp/stage/usr/localにFFMPEGをインストールし、そのFFMPEGに対してopencvをビルドしようとしていると言っていますか?あるいは、/ tmp/stage/usr/localにcmakeで何かをインストールしようとしていますか? – ltc

+0

FFMPEGは/ tmp/stage/usr/localにインストールされており、FFMPEGに対してOpenCVを構築しようとしています... – hatboyzero

答えて

19

私は私の問題を解決する方法を考え出して、適切なインストールでCMakeのを指すようにしよう場所は問題ではありません。

明らかに、CMakeは、FFMPEGヘッダーとライブラリがどこにあるのかを示すFFMPEGのpkg-configファイル(libavcodec.pc、libavdevice.pcなど)を見つけることができません。典型的なインストールシナリオでは、これらのファイルは/ usr/lib/pkgconfigにあります。ただし、カスタムインストール場所のため、代わりに/ tmp/stage/usr/local/lib/pkgconfigに配置されます。

cmakeのは、これらのファイルを見つけることができるように、私は、次の環境変数を追加する必要がありました:予想通り、OpenCVのは、FFMPEGに対してビルド

export PKG_CONFIG_PATH=/tmp/stage/usr/local/lib/pkgconfig 

その時点の後。

+1

元の質問と同じ問題があるようですが、CentOS 6.5を使用しています。 OpenCVが失敗した後、$ PKG_CONFIG_PATH変数が/ usr/lib/pkgconfigに設定され、そのディレクトリにzlib.pcファイルだけが含まれていることがわかります。それは普通ですか?私はffmpegをインストールし、opencvはopencv_perf_videoをリンクしている間に文章を作成します.ffmpegソースの下にある 'avformat_network_init'への未定義の参照があります。私はffmpegがどこにインストールされているのかわかりません(私は接頭辞=/usr/localを与えようとしましたが、見つけられませんでした) –

+0

私は変数がbashスクリプトか端末で手動で設定されていると推測します。あなたは、cmakeからこれを直接設定することはできますか?私はセット(ENV {PKG_CONFIG_PATH} "$ {PROJECT_SOURCE_DIR}/libs/ffmpeg/build/lib/pkgconfig")を試しましたが、何とかPKG_CONFIG_PATHをエクスポートしないのでビルドに失敗します。 – infoclogged

関連する問題