C++ 使用CMake创建独立的可执行文件

C++ 使用CMake创建独立的可执行文件,c++,dll,cmake,C++,Dll,Cmake,我需要构建一个独立的可执行文件。主要问题是这个项目依赖于我以前在系统上构建的dll 当我创建可执行文件时,不应该依赖于这些dll,所以我需要知道是否可以在程序中以某种方式包含它们。为了进行编译,我目前正在使用CMake,我认为这是最好的解决方案,但我还没有找到一种方法来完成这项任务 现在,在我的CMakeLists.txt文件中,我执行以下操作: find_package(ITK REQUIRED) include(${ITK_USE_FILE}) add_executable(myexe

我需要构建一个独立的可执行文件。主要问题是这个项目依赖于我以前在系统上构建的dll

当我创建可执行文件时,不应该依赖于这些dll,所以我需要知道是否可以在程序中以某种方式包含它们。为了进行编译,我目前正在使用CMake,我认为这是最好的解决方案,但我还没有找到一种方法来完成这项任务

现在,在我的
CMakeLists.txt文件中,我执行以下操作:

find_package(ITK REQUIRED)

include(${ITK_USE_FILE})

add_executable(myexe myexe.cxx)

target_link_libraries(myexe
${ITK_LIBRARIES} )
我省略了一些说明,以便重点关注最重要的内容。当我编译它时,它可以正常工作,但它不是独立的,因为它仍然使用安装在我的系统上的dll(也尝试了.a)


感谢

DLL本质上是在运行时动态链接到的。您唯一的选择是使用静态库(.lib在windows上。

我现在正在编译静态库,谢谢你的回答,一旦我完成了,我还需要在我的CMakeLists.txt中添加任何其他内容吗?什么是
dll
你的意思是,
ITK
?你的问题是如何构建
myexe
可执行文件,使它在运行时不需要
ITK
库?你是吗在Linux或Windows上工作?您提到了
dll
(通常是Windows共享库)和
。a
(通常是Linux静态库)很抱歉我的床上解释。我在Windows上工作,我刚刚编译了itk(和vtk)的静态库.生成的文件有一个.a扩展名,据我所知,该扩展名也适用于Windows。因此,我需要构建此可执行文件,以便它在运行时不需要itk