[英]How run clang from command line on Windows?
在上周的 Going Native 會議上,Chandler Carruth 宣布存在用於在 Windows 上運行 clang 的預構建二進制文件。 相同的信息在此處的博客文章中。 目標受眾是 Visual Studio 的用戶,但我想從命令行運行 clang。
我運行了安裝程序並將 LLVM bin
目錄添加到我的路徑中,但是當我嘗試編譯“Hello world”時,我得到了這個:
C:\>clang hello.cpp
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^
1 error generated.
我找不到任何關於如何配置東西以在 Windows 上運行 clang 的信息,我猜在我弄清楚如何告訴 clang 在哪里搜索標准庫頭文件之后,我必須告訴它在哪里看用於鏈接的庫。 有人可以逐步引導我完成設置或將我指向這樣的演練嗎?
這是一個老問題,從那以后發生了很多變化。 鑒於這是在 Windows 上嘗試 Clang 時的常見問題,它值得一個更新的答案。
截至 2017 年,使用適用於 Windows 的 LLVM 3.9.1 構建,您需要以下內容才能從您的 shell 調用clang
。
我們仍然沒有適用於 Windows 的 libc++ 端口,因此 Clang 使用 VC++ 庫以及 VC++ 鏈接器。
所以首先你需要在你的系統上安裝VC++ Build Tools 。 如果您碰巧有 Visual C++ IDE,請注意您已經安裝了這些。
您需要告訴 Clang 在哪里可以找到構建工具及其庫。
這是最簡單和標准的選項。
跑
> "%VS140COMNTOOLS%../../VC/vcvarsall.bat" amd64
將amd64
替換為 Clang 上的目標架構,可能是x86
、 amd64
或arm
。 如果您有不同版本的 VC++ 工具集,您也可以替換%VS140COMNTOOLS%
。
作為快捷方式,您可以運行 Visual C++ 命令提示符而不是cmd+vcvarsall
,因為您需要為打開的每個命令提示符調用此批處理。
現在您可以享受Clang 了。
如果您無法運行vcvarsall.bat
或想要自動化此過程,歡迎您,我也有同樣的需要。
以下所有環境變量都是由vcvarsall.bat
自動設置的,因此您可以運行它並從那里獲取您的機器值。 我將以地雷為例,希望其他地方也一樣。
將INCLUDE
環境變量設置為C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;
將LIB
設置為C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
. 請注意架構特定的組件!
對於構建工具,您可以在PATH
上使用這些工具,也可以設置VCINSTALLDIR
環境變量。 Clang 會同時嘗試這兩種方法,支持VCINSTALLDIR
。
將VCINSTALLDIR
設置為%VS140COMNTOOLS%../../VC
或將%VS140COMNTOOLS%../../VC/bin/amd64
添加到您的PATH
中。
這一切都很少記錄,因此要求可能隨時更改,但Clang MSVC 驅動程序正在嘗試通過查詢 Windows 寄存器和許多其他技巧來盡可能地自動化這一點,因此這些可能不再是必要的了未來。
使用 Clang for Windows 5.0.0(64 位)(此處提供最新版本;您希望LLVM-xyz-win64.exe
)和 Visual Studio 2017 社區版或構建工具安裝在其默認設置路徑中(包括最新/匹配的 Windows SDK ):
C:\>clang --version
clang version 5.0.0 (tags/RELEASE_500/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\LLVM\bin
我使用clang-cl
( clang-cl.exe
== clang.exe --driver-mode=cl
) 獲得了很好的體驗,它確實會自動找到所有必要的msvc
庫/包含依賴項:
C:\>clang-cl hello.cpp
或編譯為 32 或 64 位應用程序:
C:\>clang-cl -m32 hello.cpp
C:\>clang-cl -m64 hello.cpp
選擇
請參閱Arvid Gerstmann 的博客:在 Windows 上使用 clang 。
參考
這是我在 Windows 10 的終端上使用clang編譯器所做的:
完成此操作后,我可以從終端使用 clang 編譯器。 要編譯 C 程序,請轉到源目錄並鍵入;
clang *.c
要編譯 C++ 程序,請改用;
clang++ *.cpp
我希望這些信息對其他人有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.