修改
经过几个步骤后问题解决了。您可以在OpenCV Q& A页面上查看我的帖子。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
我正在尝试将我的C ++(CMake)应用程序静态链接到另一台未安装OpenCV的计算机上运行。
到目前为止,
我通过将BUILD_SHARED_LIBS设置为OFF来从源构建OpenCV,因此我可以在lib目录下看到库文件。 (扩展名为。)
我为OpenCV的新版本编辑了环境变量,我的IDE确实看到包含目录和文件,所以这一步似乎也没问题。
在CMake中为target_link_libraries命令添加了“-static”参数:
target_link_libraries(HoGPeopleDetector ${OpenCV_LIBS} "-static")
然后重建应用程序,EXE大小从200 KB增加到1.6 MB。所以我猜连接过程是成功的。
当我在IDE中运行它时,该应用程序运行良好。但是,当我尝试从EXE文件运行它时,它仍然需要DLL文件。 (libopencv_core310.dll以及更多)
IDE:CLion 2017.1.2 OpenCV:3.1
答案 0 :(得分:0)
经过几个步骤后问题解决了。您可以在OpenCV Q& A页面上查看我的帖子。
http://answers.opencv.org/question/152366/build-application-with-static-libraries/
总的来说,它是"记得在每次调用cmake"之间清除你的CMake cache file。并移动/复制opencv_ffmpegXXX.dll(在我的情况下为310),将它与EXE放在同一目录中。