2014-07-17 55 views
-1

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

当我创建可执行文件时,不应该存在这些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)。

谢谢

+0

你的意思是什么'dll',ITK'?你的问题是你如何构建'myexe'可执行文件,使它不需要'ITK ''''''''''''''''''''''在运行库中的库? – Peter

+0

您是否在Linux或Windows上工作?您提到'dll'(通常是Windows共享库)和'.a'(通常是Linux静态库) – Peter

+0

抱歉,我刚刚为itk(和vtk)编译了静态库,生成的文件有一个.a扩展名,据我所知它也适用于Windows。所以我需要构建这个可执行文件,以便它不需要itk运行时 – user3714682

回答

0

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

+0

我正在编译静态库,谢谢你的回答,一旦我完成了,我需要添加其他任何东西到我的CMakeLists.txt? – user3714682

相关问题