2

OSX を 10.9 (Maverick) に更新した後、CUDA サポートを使用して OpenCV をコンパイルできません。CUDA SDK をインストールし、すべてのサンプルをコンパイルして実行できたので、CUDA の問題ではありません。

次のエラーが表示されます。

[ 22%] Built target IlmImf
[ 22%] Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/./cuda_compile_generated_matrix_operations.cu.o
clang: error: unsupported option '-dumpspecs'
clang: error: no input files
CMake Error at cuda_compile_generated_matrix_operations.cu.o.cmake:206 (message):
Error generating
/Users/josericardo/Downloads/opencv-2.4.6.1/build/modules/core/CMakeFiles/cuda_compile.dir/src/cuda/./cuda_compile_generated_matrix_operations.cu.o

誰もこの問題を抱えていますか?この特定のエラーについてネットで検索しました (このような以前のエラーに対するいくつかの提案は存在しますが、これにはありません) が、成功しませんでした。

本当にありがとう!

4

4 に答える 4

2

llvmこれは、デフォルトのコンパイラが MacではなくgccOSX 10.8 でも発生するようになってから発生した「古い」問題です。

前提条件:新しい Mac を使用している場合、または開発者ツールが最近 (たとえば 3 ~ 4 か月前) までインストールされていなかった Mac を使用している場合gcc/g++は、/usr/bin.

インストールされていない場合は、たとえばhomebrewgcc/g++を介してインストールする必要があります。

Cmake セットアップ:設定でcmake、C と C++ CUDA ホスト コンパイラの両方が のインストールに設定されていることを確認します。gcc/g++通常は/usr/local/bin. この質問にも役立つ情報がいくつかあります。

于 2013-10-28T09:58:05.527 に答える
1

OK、数日間のハードな作業の後、なんとか自分のマシンで動作させることができました.

Opencv 2.4 の git バージョンを使用しましたが、使用しているバージョンとそれほど変わらないと思います。

私が抱えていた問題は次のとおりです。

  • Mac 10.9 では、clang の利益として、gcc はディストリビューションから削除されました。ただし、clang による CUDA の使用は拒否されます。リンクはメインコンパイラによって行われ、clang では機能しないため、cmake で CUDA_HOST_COMPILER を gcc バージョンに設定しても十分ではありません。さらに、CUDA は gcc バージョン >= 4.7 を受け入れません。簡単に言えば、古いバージョンの gcc を macports とともにインストールして、すべてのライブラリをコンパイルしました。
  • clang の代わりに gcc を使用する場合の問題は、QTKit (QuickTimeKit) の最新フレームワークへの呼び出しがコンパイルされなくなることです。そのため、無効にする必要がありました (OpenCVFindLibsVideo.cmake -> set(HAVE_QTKIT NO) で変更できます)。
  • また、GUI を機能させるために Qt5 をインストールする必要がありました (そうしないと、'imload' および 'imwrite' 関数を含む highgui モジュールがコンパイルされません)。
  • また、いくつかのリンカ オプションにバグがある cmake 2.8.12 と 2.8.11 は使用しないでください -> http://comments.gmane.org/gmane.comp.programming.tools.cmake.user/48007
  • CMAKE_SYSTEM_PROCESSOR も設定する必要があります。設定されていない場合、FindCUDA.cmake の 762 行目と 770 行目でエラーが発生します。

おそらく私はいくつかのことを忘れていました.ffmpegも無効にする必要があったと思います. 最終的にはかなり難しかったですが、今ではすべてうまくいっているようです :-)

于 2013-11-02T13:47:31.323 に答える