Включить библиотеки 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")