按照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
有什么建议吗?
答案 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/
答案 1 :(得分:4)
我猜你是从源头构建的。如果是这样,我建议使用CMake。 我已经设法用Java模块构建OpenCV 2.4.4,方法是使用ccmake:
cd OpenCV-2.4.4
mkdir build
cd build
ccmake ..
确保BUILD_opencv_java
为ON
(默认情况下应该开启)
完成设置后:
c
)g
)make
,make install
为方便起见,我还在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。