Включить библиотеки mingw в скомпилированный файл

Я использую cmake для создания проекта Eclipse CDT MinGW. (Затмение Версия Кеплера)

Это мой Cmakelist:

project(IMGTODICOM)

find_package(ITK REQUIRED)

include(${ITK_USE_FILE})

add_executable(IMGTODICOM IMGTODICOM.cxx)

target_link_libraries(IMGTODICOM ITKReview ${ITK_LIBRARIES})

Код компилируется и запускается без проблем на моем компьютере, но на другом компьютере он не запускается. Некоторым нравится libgcc_s_dw2-1.dll являются обязательными. Я искал эту DLL в моем компьютере, и я нашел его в C:\MinGW\bin, Чтобы решить эту проблему, я скопировал содержимое этой папки на другой компьютер, и, наконец, исполняемый файл. Однако мне интересно, есть ли лучший способ для запуска exe-файла на любом ПК с Windows, добавляя эти библиотеки в процессе компиляции.

Я читал, и я должен сделать, чтобы компилятор ссылался на статическую библиотеку. В Eclipse я пытался добавить DLL в свойствах>C/C++ Включить путь и символы и в проект Path> Библиотеки, но это не работает. Я пытался изменить CmakeList, но он также не работает.

Я не знаю, почему эта проблема и как я могу включить содержание C:\MinGW\bin в исполняемом файле.

Большое спасибо за любую помощь

1 ответ

Решение

Да, есть способ. Для чистого кода C:

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

Для кода C++:

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")
Другие вопросы по тегам