2016-06-21 166 views
1

你如何編譯和在Linux中交叉編譯的Windows 64位彙編的64位

鏈接一個64位的Windows彙編程序

我已經知道跑

nasm -f win64 generic_assembly.asm -o generic_output 

但在那之後我不能只要運行

ld generic_output -o generic_executable.exe 

和我一直在使用GoLink.exe酒試過,但我仍然懷疑是否是實際工作

也許我可以使用Mingw-w64,但我不知道如何工作

任何幫助,將不勝感激我主要只是尋找一個鏈接器,我可以從Linux運行,但否則一個鏈接器的Windows也會不勝感激。

+4

您將需要一個Windows交叉編譯器,如MinGW。您的發行版可能已經包含預先製作的包(您只需通過包管理器安裝它)。一旦你安裝了它,你可以從交叉編譯器運行_LD_ - 它可能被稱爲'x86_64-w64-mingw32-ld',GCC交叉編譯器將被稱爲'x86_64-w64-mingw32-gcc'等。我的Debian Jessie系統的命名約定。 –

+1

是的,我建議只使用'x86_64-w64-mingw32-gcc'將nasm中的'.obj'文件鏈接到可執行文件中,以防需要任何非明顯的'ld' arg。 (酌情使用'-static'和/或'-nostdlib')。 –

回答

2

要從Linux安裝64位Windows的對象,請安裝x86_64-w64-mingw32-gcc。要這樣做請按照下列步驟操作:

  • 轉至here並下載最新版本。
  • 解壓存檔到/ opt/mingw64
  • 然後做sudo ln -s /opt/mingw64/bin/x86_64-w64-mingw32-g++ /usr/bin/mingw64-g++

現在您已經安裝了用於Windows 64位交叉編譯器,如果你想32位版本做相同的,但使用this link