簡體   English   中英

如何在 Windows 中運行 makefile?

[英]How to run a makefile in Windows?

我下載了一些演示,它們帶有 Makefile.win 和 Makefile.sgi。 如何在 Windows 中運行這些來編譯演示?

您可以使用Chocolatey安裝GNU make ,這是一個維護良好的包管理器,它將make添加到全局路徑並在所有 CLI(powershell、git bash、cmd 等)上運行,從而為您節省大量維護和初始時間設置讓 make 運行。

  1. 安裝適用於Windows巧克力包管理器
    兼容 Windows 7+ / Windows Server 2003+

  2. 運行choco install make

我不隸屬於 choco,但我強烈推薦它,到目前為止它從未讓我失望,而且我確實有無意中破壞軟件的天賦。

如果您有 Visual Studio,請從“開始”菜單運行 Visual Studio 命令提示符,切換到包含Makefile.win的目錄並鍵入:

nmake -f Makefile.win

您也可以使用普通命令提示符並運行 vsvars32.bat (c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools for VS2008)。 這將設置環境以運行 nmake 並找到編譯器工具。

查看cygwin ,一個類似 Unix 的 Windows 環境

查看GnuWinmake (for windows) ,它為 Windows 提供了本機端口(不需要像 Cygwin 這樣的完整運行時環境)

如果你有winget ,你可以像這樣通過 CLI 安裝:

winget install GnuWin32.Make

此外,請務必將安裝路徑添加到系統PATH

C:\Program Files (x86)\GnuWin32\bin

這是我運行 Makefile 的快速臨時方法

  • 從 SourceForge 下載makegnuwin32
  • 安裝它
  • 轉到安裝文件夾

C:\Program 文件 (x86)\GnuWin32\bin

  • 將 bin 中的所有文件復制到包含 Makefile 的文件夾中

libiconv2.dll libintl3.dll make.exe

  • 在包含 Makefile 的文件夾中打開 cmd (您可以通過右鍵單擊 shift來完成)並運行

制作.exe

完畢。

另外,您可以在命令后添加參數,例如

make.exe 骨架

如果你安裝Cygwin 確保在安裝程序中選擇 make。 然后,如果您有 Makefile,則可以運行以下命令。

make -f Makefile

https://cygwin.com/install.html

我嘗試了以上所有方法。 對我有什么幫助:

  1. 下載mingw-get
  2. 設置它。
  3. 將類似C:\MinGW\bin的內容添加到環境變量中。
  4. 啟動 (!important) git bash Power shell、開發人員與 cmd、系統 cmd 等沒有幫助。
  5. 在命令行中輸入mingw-get
  6. 輸入mingw-get install mingw32-make

完畢! 現在您可以使用任何包含 Makefile 的文件夾中的 make-commands。

使用 Visual Studio 2017,我必須將此文件夾添加到我的 Windows 10 路徑環境變量中:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64

還有HostX86

我使用提供mingw32-make構建工具的MinGW工具集,如果你在PATH系統變量中有它,在 Windows 命令提示符中只需進入包含文件的目錄並鍵入以下命令:

mingw32-make -f Makefile.win

它完成了。

如果它是“NMake Makefile”,也就是說語法和命令與 NMake 兼容,它將在 Windows 上原生運行。 通常Makefile.win.win后綴)表示它是與 Windows NMake 兼容的 makefile。 所以你可以試試nmake -f Makefile.win

通常會提供標准的 Linux Makefiles, NMake看起來很有希望。 但是,以下鏈接采用了一個簡單的 Linux Makefile 並解釋了可能遇到的一些基本問題。 它還提出了一些在 Windows 上處理 Linux Makefile 的替代方案。

Windows 中的 Makefile

首先,將Visual Studio常用工具的路徑( c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools )添加到系統路徑中。 要了解如何在系統路徑中添加路徑,請查看此網站:http: //www.computerhope.com/issues/ch000549.htm 你只需要這樣做一次。

之后,無論何時需要,打開命令行並執行vsvars32.bat以將所有必需的 Visual Studio 工具路徑添加到系統路徑中。

然后,您可以調用nmake -f makefile.mak

PS:Visual Studio 常用工具的路徑在您的系統中可能會有所不同。 請相應地更改它。

我嘗試使用 cygwin 和 gnuwin,但對我沒有用,我猜是因為 makefile 主要使用特定的 linux 代碼。

它的工作原理是使用Ubuntu Bash for Windows 10 如果您來自 MAC,這就是奇跡,因為這是我的情況:

  1. 要安裝 Ubuntu Bash: https ://itsfoss.com/install-bash-on-windows/
  2. 進入控制台后,只需鍵入“make”即可安裝 make,它會給出下載說明。

附加功能:

  1. 有用的在 bash 上啟用復制/粘貼: 在 Windows 上的 Ubuntu 上的 Bash 中復制粘貼
  2. 在我的例子中,make 叫做 Maven,所以我也必須安裝它: https ://askubuntu.com/questions/722993/unable-to-locate-package-maven
  3. 訪問 windows 文件系統 C: 驅動器,例如:“cd /mnt/c/”

希望能幫助到你

安裝 msys2 並使用 make 依賴項將兩者都添加到 PATH 變量中。 (第二個選項是 GNU ToolChain for Windows。MinGW 版本已經包含了 mingw32-make。)

安裝 Git Bash。 從 Git Bash 運行 mingw32-make。

  1. https://sourceforge.net/projects/gnuwin32/下載
  2. 在命令提示符中設置識別變量路徑 (C:\Program Files (x86)\GnuWin32\bin)

我假設您將mingw32/bin添加到環境變量中,否則請添加它,我假設它是 gcc 編譯器並且您有 mingw 安裝程序。

第一步:從mingw安裝程序下載mingw32-make.exe ,或者先檢查mingw/bin文件夾是否有mingw32-make.exe ,如果不安裝,重命名為make.exe

將其重命名為make.exe后,只需在makefile所在的目錄中運行此命令即可。 您可以直接將其作為mingw32-make運行,而不是重命名它。

畢竟,一個命令只是一個exe文件或者一個軟件,我們用它的名字來執行這個軟件,我們稱之為命令。

因此,如果您使用的是 Vscode 和 Mingw,那么您應該首先確保mingwbin文件夾包含在環境路徑中,並且最好將mingw32-make.exe更改為make以簡化任務,然后創建一個makefile並在其中包含此代碼。

all:
    gcc -o filename filename.c
    ./filename

然后保存 makefile 並打開 Vscode Code終端並編寫make 然后makefile將被執行。

如果您已經從MSYS2安裝了 Windows GNU 編譯器 (MinGW),那么make命令會預先安裝為wingw32-make 始終將 cmake makefile 生成與正確的 make 命令相匹配。 混合這些會產生問題。

使用 MinGW make 命令生成 MinGW makefile

使用 VS 等效 make 命令生成 Visual Studio makefile

只要您擁有源代碼,這始終是可能的。 只需刪除舊的構建目錄並通過這次在 cmake 中指定正確的參數來重新開始,例如

mkdir build
cd build
cmake -G "MinGW MakeFiles" path/to/src/whereCMakeLists.txtInstructionsAre   
mingw32-make     
myProject.exe   # RUN

我在編譯過程中遇到了多個 make 命令交互的問題。 為了防止這種情況,只需編輯/刪除導致不同 make 命令的環境變量。 例如,為了防止與 mingw 沖突,只保留C:\msys64\mingw64\bin但刪除C:\msys64\usr\bin 另一個路徑包含 msys make,正如我所說,您不想在編譯期間組合 make 命令。

Go 到http://gnuwin32.sourceforge.net/packages/make.htm並下載 make-3.81.exe,安裝並添加到 ZAEA23489CE3AA9B6406EBB28E0CDA4 路徑。

我下載了一些演示,它們帶有Makefile.win和Makefile.sgi。 如何在Windows中運行這些文件以編譯演示?

也許它可以工作。

pip install Makefile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM