我有一個Windows 7 64位系統,最新的MinGW(32位)與Qt 5.5 SDK(也是32位)一起安裝,它也附帶了它自己的MinGW。由於我不是唯一使用該系統的人,所以我無法刪除獨立的MinGW。缺少libgcc_s_dw2-1.dll
我的項目使用qmake
,並且是一個純C項目(不是C++)。一切都很好,但是當我嘗試在命令行中執行我的二進制文件時,由於系統上缺少libgcc_s_dw2-1.dll
,導致應用程序無法啓動。
在調查了這個問題之後,我發現獨立的MinGW和Qt SDK一起提供了一個提到的DLL。
- 獨立的MinGW -
libgcc_s_dw2-1.dll
位於bin
子目錄MinGW的安裝,其中二進制文件所在(gcc
,g++
,gdb
等) - 的Qt MinGW的內部 -
libgcc_s_dw2-1.dll
位於內部C:\Qt\Tools\mingw492_32\i686-w64-mingw32\lib
子目錄而MinGW組件的二進制文件在C:\Qt\Tools\mingw492_32\i686-w64-mingw32\bin
之內。
我想知道如何正確設置我的PATH
變量,以便:
- 應用程序正常啓動
- 沒有使用獨立的MinGW安裝發生衝突
只是一個旁註:我已經在SO上查看了其他帖子,但無法找到解決方案(也許我錯過了它)。我也試過LIBS += -static
,但結果是一樣的。
與libgcc和libstdC++靜態鏈接不是這裏的方式:無論如何Qt鏈接到DLL,所以你仍然有依賴,並且最重要的是,你現在必須編譯運行時和C++標準庫在您的應用程序,與他們可能的全球狀態混淆。 – rubenvb
另請注意,MSYS2環境帶有一個Windows'ldd',它非常方便。 – rubenvb
@rubenvb - 是的,我已經離開了後期的靜態鏈接...關於Windows上的LDD(酷)你有鏈接嗎? (它在哪裏) - 我發現linux工具好得多... –