當前位置:首頁 » 編程軟體 » gcc編譯dll

gcc編譯dll

發布時間: 2025-06-25 15:28:42

㈠ Qt Creator里如何設置gcc編譯的優化等級

不是release優化的問題。如果是直接運行的話,mingwm10.dll、libgcc_s_dw2-1.dll、qtcore4.dll、qtgui4.dll,還有相應的你用到的庫都要放在運行目錄下,用dependency walker可以看到dll依賴情況。
然後用到的插件比如qmltooling、imageformats等目錄也需要拷到運行目錄中,這個用工具看不到依賴,只能全拷然後用排除法,有經驗之後代碼里哪些用到了就知道了。

出現runtime library錯誤的最大可能性就是運行目錄下的插件不完整。

另外有一種解決方法就是把qt改成靜態鏈接,編譯進exe,商業版允許這樣做,lgpl版的話如果不是自用就有法律風險。

㈡ cmake:讓mingw(gcc)生成MSVC可用的dll(.lib)----mark親測有效

minggw(gcc)編譯出來的動態庫(DLL),默認是沒有MSVC連接動態庫所需要的lib文件的。

關於MSVC的DLL和LIB的作用和區別,請參考這篇博文,講得很透徹了–>《DLL和LIB的區別》

那麼如果VC要鏈接gcc生成的DLL,卻沒有lib文件怎麼辦?
對於這個問題網上都有解決的辦法,這篇文章講到一些辦法,可供收藏《VC6 調用GCC的DLL》,對於沒有提供lib的DLL都可以用這篇文章提供的辦法試試。

如果項目中不同的模塊用不同的編譯器編譯,這時如果gcc編譯的DLL沒有import library(lib文件),可以通過cmake設置選項來解決。

CMAKE有一個GNUtoMS參數就是解決這個問題的。

GNUtoMS
Convert GNU import library (.dll.a) to MS format (.lib).

When linking a shared library or executable that exports symbols using GNU tools on Windows (MinGW/MSYS) with Visual Studio installed convert the import library (.dll.a) from GNU to MS format (.lib). Both import libraries will be installed by install(TARGETS) and exported by install(EXPORT) and export() to be linked by applications with either GNU- or MS-compatible tools.

CMAKE_GNUtoMS
Convert GNU import libraries (.dll.a) to MS format (.lib).

This variable is used to initialize the GNUtoMS property on targets when they are created. See that target property for additional information.(這個變數用來初始化GNUtoMS屬性)

在用cmake生成Makefile時,設置GNUtoMS就可以解決這個問題。有兩種途徑:

shell命令行方式
如下在命令行中-D定義一個為bool類型的CMAKE_GNUtoMS參數為ON,就指示在編譯時對dll生成.lib的import library

cmake %source_folder% -G 「Eclipse CDT4 - MinGW Makefiles」 -DCMAKE_GNUtoMS:BOOL=ON

cmak-gui
如下在cmake-gui界面中將CMAKE_GNUtoMS選項勾選,再點<generate>按鈕生成Makefile

這里寫圖片描述

然後執行make編譯項目的過程中,生成dll時會輸出(前提是你安裝了VC編譯器)

Setting environment for using Microsoft Visual Studio 2010 x64 tools.

Microsoft (R) Library Manager Version 10.00.30319.01

Copyright (C) Microsoft Corporation. All rights reserved.

正在創建庫 libturbojpeg.lib 和對象 libturbojpeg.exp

編譯完成後,你就會發現所有的dll都有對應的lib文件了。
link: http://www.voidcn.com/article/p-tlmilzjf-ca.html

㈢ 如何在Windows下安裝使用gcc編譯器

1、 先去Cygwin網站下載一個安裝文件(setup.exe),這個文件體積很小,只有不到300KB。然後雙擊運行setup.exe。因為是第一次安裝,所以必須選擇從Internet在線安裝,也可以先從Internet下載安裝文件,然後再手動安裝。我選擇後者,因為這樣,以後我可以在不聯網的時候也能安裝。
2、接下來點擊「下一步」,然後從一系列伺服器列表中選擇一個你認為網速最快的一個作為下載伺服器。接著點擊「下一步」就會出現如下圖所示的界面,用來選擇你想安裝的程序。
如果你不做任何修改,將默認安裝Cygwin運行所需的最少的程序和組件。不過,gcc編譯器不在默認安裝程序之列,所以你必須選擇安裝gcc。具體是, 在上述窗口中的列表中展開Devel目錄,找到gcc-g++一項,點擊「Default」,它就變成了「Install」,同時由於程序之間的依賴性 gcc-core條目的「Default」,也變成了「Install」。
此外,為了使gcc能正確編譯源文件,還必須安裝win32api庫,否則會編譯出錯。因此,你需要在上述窗口中展開Libs目錄,找到win32api一項,將它點成「Install」。
3. 接下來就是耐心等待程序去下載所需的安裝文件了。一旦下載完畢,你再次運行setup.exe,先選擇你將要把Cygwin安裝在什麼地方,然後再選擇你 剛才所下載的那些安裝文件所在的硬碟位置。接著你還需要再次選擇安裝gcc和win32api。這樣,你就可以開始安裝了。
4. 安裝完成後,運行Cygwin。在窗口中敲入gcc就可以直接用gcc來編譯了。編譯鏈接生成的可執行文件,系統會自動加上.exe後綴,在Cygwin 環境中可以直接運行。但如果脫離Cygwin環境,而在MS DOS下運行,則會出錯。解決辦法很簡單,那就是將cygwin1.dll文件拷貝到C:\WINDOWS目錄下即可。

熱點內容
火影忍者如何關掉二級密碼 發布:2025-06-25 20:49:11 瀏覽:635
sqlserver中函數 發布:2025-06-25 20:35:29 瀏覽:759
java雞兔同籠 發布:2025-06-25 20:25:20 瀏覽:212
安卓導航哪裡下載app 發布:2025-06-25 19:59:09 瀏覽:26
易手游源碼 發布:2025-06-25 19:49:35 瀏覽:463
android信息代碼 發布:2025-06-25 19:40:57 瀏覽:846
飢荒怎麼看伺服器地址 發布:2025-06-25 19:39:23 瀏覽:109
通過伺服器ip可以查到什麼 發布:2025-06-25 19:38:29 瀏覽:672
安卓怎麼裝兩個王者榮耀 發布:2025-06-25 19:33:12 瀏覽:129
vbsql連接字元串 發布:2025-06-25 19:12:25 瀏覽:140