使用静态库构建OpenCV应用程序

时间:2017-05-27 19:22:51

标签: opencv cmake static-linking opencv3.1

修改

经过几个步骤后问题解决了。您可以在OpenCV Q& A页面上查看我的帖子。

http://answers.opencv.org/question/152366/build-application-with-static-libraries/

我正在尝试将我的C ++(CMake)应用程序静态链接到另一台未安装OpenCV的计算机上运行。

到目前为止,

  1. 我通过将BUILD_SHARED_LIBS设置为OFF来从源构建OpenCV,因此我可以在lib目录下看到库文件。 (扩展名为。)

  2. 我为OpenCV的新版本编辑了环境变量,我的IDE确实看到包含目录和文件,所以这一步似乎也没问题。

  3. 在CMake中为target_link_libraries命令添加了“-static”参数:

    target_link_libraries(HoGPeopleDetector ${OpenCV_LIBS} "-static")
    
  4. 然后重建应用程序,EXE大小从200 KB增加到1.6 MB。所以我猜连接过程是成功的。

    当我在IDE中运行它时,该应用程序运行良好。但是,当我尝试从EXE文件运行它时,它仍然需要DLL文件。 (libopencv_core310.dll以及更多)

    IDE:CLion 2017.1.2 OpenCV:3.1

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放在同一目录中。