2014-10-16 32 views
7

我目前正在創建一個共享的lib DLL,但我需要在64位環境下在運行時加載它,所以目前它不工作。如何使用G ++ w/CodeBlocks編譯64位?

如何使用g ++從代碼塊編譯64位dll?

我試過編譯器選項,如-m64,但似乎沒有工作。

+0

你應該使用'-m64' - 如果這不起作用,你需要用什麼方式解釋「沒有任何工作」。 – 2014-10-16 22:05:29

+0

@MatsPetersson感謝您的回覆。我只是使用-m64並嘗試加載dll。仍然說這是32位。說,我使用32位mingw,但當我試圖安裝64位時,我得到了一個錯誤。 – user3530525 2014-10-16 22:14:17

+0

從https://sourceforge.net/projects/下載https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/5.3.0/或在線安裝程序mingw-w64/ – Vadzim 2016-07-02 17:58:46

回答

15

要使用g ++在Windows上編譯64位程序,您需要MinGW64。我相信Code :: Blocks附帶了MinGW32。

要安裝它到代碼::塊,解壓壓縮文件到一個文件夾沒有空格,如C:\MinGW64

開放代碼::塊,然後點擊設置 - >編譯器和調試器。在選定的編譯器下,單擊複製。在下一個框中,鍵入「MinGW 64位編譯器」,然後單擊確定。

然後在工具鏈可執行文件選項卡上,單擊每個選項旁邊的瀏覽按鈕並瀏覽到您將MinGW64複製到(C:\MinGW64)並進入bin文件夾的文件夾。設置每個選項如下:

編譯器的安裝目錄:gcc.exe

C++編譯器:

C編譯器指定(C:\MinGW64

路徑 g++.exe(如果你用我的鏈接上面這將是 g++64.exe,謝謝提醒我)

鏈接動態庫超級貓:g++.exeg++64.exe,如果你用我的鏈接)

鏈接靜態庫:ar.exe

調試器:沒有一個MinGW64然而,清除這個和留空

資源編譯器:windres.exe

製作程序:make.exe

一旦你設置編譯器,使用相同的設置編譯您的DLL,只使用64位編譯器。

+0

非常感謝,非常完美。現在我可以輕鬆地在兩個編譯器之間切換。謝謝:) – user3530525 2014-10-22 17:18:50

+3

只是一個簡單的FYI - ''g ++。exe''實際上被命名爲''g ++ 64.exe''。 – 2015-08-28 22:37:36

+3

啊,是的。我從我的設置中創建了Dropbox鏈接。我有我的設置,所以MinGW64和MinGW32都在PATH環境中的一個文件夾中,因此我可以將32或64附加到該命令以獲得32位可執行文件或64位。感謝超級貓提醒我。 – NukingDragons 2015-08-29 21:07:28