最近使用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)