1. 程式人生 > >Windows下使用CMake+MinGW靜態編譯釋出.exe程式

Windows下使用CMake+MinGW靜態編譯釋出.exe程式

最近使用mingw編譯了一份boost靜態庫,在CMake編譯成.exe程式釋出後,發現仍舊提示缺少DLL檔案。提示缺失的DLL檔案大概如下:

libgcc*.dll
libstdc++*.dll
libwinpthread-1.dll

經過簡單摸索之後,終於找到了解決方法。

#需要在CMakeLists.txt新增以下內容

#設定靜態編譯
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")

#連結靜態庫
#連結boost靜態庫(project_Name為你的專案名,*分別代表庫名、mingw版本號、boost庫版本號,如:libboost_system-mgw72-mt-s-1_65_1.a)
target_link_libraries(project_Name libboost_*-mgw*-mt-s-*.a) #連結gcc-g++靜態庫 target_link_libraries(project_Name libgcc.a) target_link_libraries(project_Name libstdc++.a) #連結網路庫(如需要) target_link_libraries(project_Name ws2_32) #連結執行緒庫(必須放到最後) target_link_libraries(project_Name libpthread.a)