我正在使用cmake生成Eclipse CDT MinGW项目。 (Eclipse Version Kepler)
这是我的Cmakelist:
project(IMGTODICOM)
find_package(ITK REQUIRED)
include(${ITK_USE_FILE})
add_executable(IMGTODICOM IMGTODICOM.cxx)
target_link_libraries(IMGTODICOM ITKReview ${ITK_LIBRARIES})
代码在我的计算机中编译并运行没有问题,但在其他PC中它不运行。有些像libgcc_s_dw2-1.dll
这样的dll是必需的。我在计算机中查找了这个dll,并在C:\MinGW\bin
中找到了它。为了解决这个问题,我在另一台PC上复制了这个文件夹的内容,最后运行了exe文件。
但是,我想知道是否有更好的方法在编译过程中添加这些库的任何Windows PC中运行exe文件。
我正在阅读,我应该将编译器链接到静态库。在Eclipse中,我尝试在属性> C / C ++ Include Path和Symbols下以及项目Path> Libraries下添加dll,但它不起作用。我试图修改CmakeList,但它也不起作用。
我不知道为什么会出现这个问题,如何在exe文件中包含C:\MinGW\bin
的内容。
非常感谢您的帮助
答案 0 :(得分:4)
是的,有办法。对于纯C代码:
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static")
对于C ++代码:
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")