5

http://docs.opencv.org/2.4.4-beta/doc/tutorials/introduction/desktop_java/java_dev_intro.htmlからの指示に従って、私はこれに遭遇しています:

make -j8
...
...
CXX 共有ライブラリをリンクしています ../../lib/libopencv_java244.dylib
ld: 不明なオプション: -whole-archive
clang: エラー: リンカー コマンドが終了コード 1 で失敗しました (-v を使用して確認してください呼び出し)
make[2]: * [lib/libopencv_java244.dylib] エラー 1
make[1]: *
[modules/java/CMakeFiles/opencv_java.dir/all] エラー 2
make: *** [all] エラー 2

助言がありますか?

4

4 に答える 4

22

OpenCV をインストールする最も簡単なソリューションの 1 つは、Homebrewを使用することです。

次のように入力するだけです。

brew tap homebrew/science
brew install opencv --with-java

必要なライブラリを自動的にロードし、opencv をビルドします。

完了すると、jarファイルが次の場所にあります。

/usr/local/Cellar/opencv/2.4.9/share/OpenCV/java/

opencv パス

于 2014-09-08T12:25:32.167 に答える
4

ソースからビルドしていると思います。その場合は、CMake を使用することをお勧めします。ccmake を使用して Java モジュールを有効にすることで、OpenCV 2.4.4 をビルドすることができました。

cd OpenCV-2.4.4
mkdir build
cd build
ccmake ..

BUILD_opencv_javaであることを確認してくださいON(デフォルトでオンになっているはずです) OpenCV Java

設定が完了したら、次のようにします。

  1. 設定を押します( c)
  2. 生成を押します( g)
  3. いつもの続きでmakemake install

便宜上、osx 10.8 上の x86_64 用にビルドされた Java ラッパーもアップロードしました。

于 2013-04-02T09:50:10.183 に答える
2

私は文字通りまったく同じ問題を抱えていました!掘り下げてみると、リンカ ld には Unix と OS X で異なるフラグがあることがわかりました。したがって、次のエラーが発生します。

ld: unknown option: -whole-archive

modules/java/CMakeLists.txt修正するには、OS X フラグを使用するようにファイルを編集します。( を検索-whole-archive)

オリジナル:

target_link_libraries(${the_module} -Wl,-whole-archive ${__deps} -Wl,-no-whole-archive ${__extradeps} ${OPENCV_LINKER_LIBS})

新しい:

foreach(_dep ${__deps})
  target_link_libraries(${the_module} -Wl,-force_load "${_dep}")
endforeach()

これらの変更をリポジトリに反映できるかどうかを確認します。:)

--編集--
私の最初の答えは少し間違っていました (ただし、部分的には正しい!)。上記の回答を変更しました。-force_load は 1 つのアーカイブ、つまり foreach に対してのみ機能します。同様に、リンカー、つまり -Wl. 詳細についてはプル リクエスト 741を参照し、最新のコードについては git pull を参照してください。

于 2013-04-03T05:02:42.870 に答える