在Mac OS X(64位)上使用Java支持构建OpenCV

时间:2013-04-01 21:56:55

标签: opencv

按照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 个答案:

答案 0 :(得分:23)

安装OpenCV的最简单方法之一是使用Homebrew

您需要做的只是输入:

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

它将自动加载所需的库并构建opencv。

完成后,您将能够在

中找到一个jar文件
/usr/local/Cellar/opencv/2.4.9/share/OpenCV/java/

opencv path

答案 1 :(得分:4)

我猜你是从源头构建的。如果是这样,我建议使用CMake。 我已经设法用Java模块构建OpenCV 2.4.4,方法是使用ccmake:

cd OpenCV-2.4.4
mkdir build
cd build
ccmake ..

确保BUILD_opencv_javaON(默认情况下应该开启) OpenCV java

完成设置后:

  1. 按configure(c
  2. 按生成(g
  3. 继续使用通常的makemake install
  4. 为方便起见,我还在osx 10.8上传了为x86_64构建的Java包装器:

答案 2 :(得分:4)

我的解决方案是使用MacPort安装......它可以放置您需要的所有东西,而且您不必担心配置,构建等等......

只需安装MacPort然后运行:“sudo port install opencv + java”

有关详细信息,请参阅:http://ladstatt.blogspot.com.br/2013/04/opencv-on-macosx-with-java-support.html

答案 3 :(得分: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仅适用于一个存档,因此是foreach。同样,它应该转到链接器,因此-Wl。有关详细信息,请参阅pull request 741,并获取最新代码的git pull。