我有一个程序
#include <fstream>
#include <vector>
#include <opencv2/opencv.hpp>
字符串
其CMakeLists
如下
cmake_minimum_required(VERSION 3.5)
project(CirclesDetectionProject VERSION 0.1)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
# OpenCV
find_package(OpenCV REQUIRED PATHS "C:/opencv/build/x64/mingw64/")
include_directories(${OpenCV_INCLUDE_DIRS})
set(PROJECT_SOURCES
main.cpp
)
add_executable(CirclesDetection ${PROJECT_SOURCES})
target_link_libraries(CirclesDetection ${OpenCV_LIBS})
型
我在Windows 10上使用VScode,代码使用mingw32-make
正确编译和运行。
我的问题是,我如何生成一个可执行文件,可以运行在其他windows机器上,不一定有依赖安装?
1条答案
按热度按时间ukqbszuj1#
我使用了
CFE explorer
,它告诉你exe需要的所有ddl,这非常有用。在我的例子中,它告诉我我有这些依赖项:字符串
对于
libwinpthread-1.dll
,我必须将此添加到CMakeLists
以确保静态链接:型
然后对于
OpenCV
,我确实在静态模式下从源代码重新编译了它,并使用OpenCV的静态版本重新编译了我的代码。确保它使用的是静态版本:型
最后,对于
kernel32.dll
和msvcrt.dll
,它们是标准的Windows系统库,它们存在于每台Windows机器上,所以你不必担心它们。