2014-02-08 55 views
0

我對DMD編譯器上的-m64開關有點困惑。具體來說,它的文檔說明如下:帶DMD的64位可執行文件

編譯64位可執行文件。生成的目標代碼位於MS-COFF中,旨在用於Microsoft Visual Studio 10或更高版本的編譯器。

現在,我試圖用我自己的.d文件使用它,它總是與以下消息失敗:

不能運行「\ BIN \ LINK.EXE」,檢查路徑

這是否意味着我需要有一個Microsoft Visual Studio 10(或更高版本)的副本來編譯64位可執行文件?正如您可能已經猜到的那樣,我正在使用Windows 7.

+1

您引用的文檔非常清晰,並且使用簡單的語言表示「**旨在用於Microsoft Visual Studio 10或更高版本的編譯器**」。這是什麼部分令人困惑? –

+0

我認爲這意味着您需要使用它來處理混合C代碼。我當然沒有把它理解爲你需要使用D編譯器的工作visual C++編譯器。是的,在解釋之後,當然......這很有道理。但是,我認爲你不會看到並意識到這些影響。 – jcoder

回答

3

在Windows上生成64位可執行文件需要配置DMD。不幸的是,它並不適用。這一切都在「Windows notes」頁面上解釋。

總之,您需要將環境變量LINKCMD64設置爲有效的Microsoft鏈接器。您可以通過執行set LINKCMD64=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\link.exe從命令行執行此操作,然後再運行dmd。與此有關的問題是它是一個暫時的解決方案。我更喜歡設置一個持久化的環境變量LINKCMD64。

How to Create a Environmental Variable Windows 7」是一個很好的文章,顯示如何在Windows 7

PS創建環境變量。你不需要購買Visual Studio。 Visual Studio Express(C++)包含鏈接器。我也相信Platform SDK。有一個包含編譯器,鏈接器和構建Windows應用程序的所有必要工具的軟件包,但我不記得該軟件包的名稱。

+0

謝謝你的回答。有沒有有效的微軟鏈接器,我不必支付? Visual Studio是一個相當昂貴的產品... –

+1

是的,Visual Studio Express是免費的IDE。安裝C++支持和瞧,你有鏈接器。 – DejanLekic

+0

我已經完成了你所建議的一切。 Visual Studio Express有兩個鏈接器 - 一個位於''bin \ amd64_x86 \ link.exe''和另一個位於''bin \ link.exe''。我就像你說的那樣創建了路徑變量,但是我仍然像以前一樣得到相同的錯誤信息,除了其中有不同的路徑。確切地說,我得到''不能運行''C:\ Program Files文件(x86)\ Microsoft Visual Studio 12.0 \ VC \ bin \ link.exe「',檢查PATH'',另一個選項給出相同的錯誤信息。我錯過了什麼? –

相關問題