3

我正在使用 cmake 生成一个 Eclipse CDT MinGW 项目。(Eclipse 版本开普勒)

这是我的 Cmakelist:

project(IMGTODICOM)

find_package(ITK REQUIRED)

include(${ITK_USE_FILE})

add_executable(IMGTODICOM IMGTODICOM.cxx)

target_link_libraries(IMGTODICOM ITKReview ${ITK_LIBRARIES})

该代码在我的计算机上编译和运行没有问题,但在其他 PC 上却无法运行。需要一些类似的dll libgcc_s_dw2-1.dll。我在我的计算机中查找了这个 dll,并在C:\MinGW\bin. 为了解决这个问题,我把这个文件夹的内容复制到了另一台电脑上,exe文件终于运行了。但是,我想知道是否有更好的方法可以在任何 Windows pc 中运行 exe 文件,在编译过程中添加这些库。

我正在阅读,我应该将编译器链接到静态库。在 Eclipse 中,我尝试在属性>C/C++ 包含路径和符号下以及项目路径>库下添加 dll,但它不起作用。我试图修改 CmakeList 但它也不起作用。

我不知道为什么会出现这个问题以及如何C:\MinGW\bin在 exe 文件中包含 的内容。

非常感谢您的帮助

4

1 回答 1

4

是的,有办法。对于纯 C 代码:

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static")

对于 C++ 代码:

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")
于 2013-10-18T13:31:45.780 回答