Windows下使用CMake+MinGW靜態編譯發佈.exe程序

最近使用mingw編譯了一份boost靜態庫,在CMake編譯成.exe程序發佈後,發現仍舊提示缺乏DLL文件。提示缺失的DLL文件大概以下:c++

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)
相關文章
相關標籤/搜索