试图编译一个简单的hello世界的例子在Windows上使用铿锵声失败,我不知道为什么,因为下面的命令显示包含可能的标题的位置。在窗口(通过瓢安装)铿锵无法找到标题
C:\Users\peter\Downloads>clang-cl -v hello.c
clang version 3.9.1 (branches/release_39)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Users\peter\scoop\apps\llvm\current\bin
"C:\\Users\\peter\\scoop\\apps\\llvm\\current\\bin\\clang-cl.exe" -cc1 -triple x86_64-pc-windows-msvc19.0.24215 -emit-obj -mrelax-all mincremental-linker-compatible -disable-free -disable-llvm-verifier -discard-value-names -main-file-name hello.c -mrelocation-model pic -pic-level 2 -mthread-model posix -relaxed-aliasing -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -D_MT -flto-visibility-public-std --dependent-lib=libcmt --dependent-lib=oldnames -stack-protector 2 -fms-volatile -fdiagnostics-format msvc -momit-leaf-frame-pointer -v -dwarf-column-info -debugger-tuning=gdb -resource-dir "C:\\Users\\peter\\scoop\\apps\\llvm\\current\\bin\\..\\lib\\clang\\3.9.1" -internal-isystem "C:\\Users\\peter\\scoop\\apps\\llvm\\current\\bin\\..\\lib\\clang\\3.9.1\\include" -internal-isystem "F:\\visualstudio2015\\VC\\include" -internal-isystem "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\" -internal-isystem "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\" -internal-isystem "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\" -fdebug-compilation-dir "C:\\Users\\peter\\Downloads" -ferror-limit 19 -fmessage-length 120 -fms-extensions -fms-compatibility -fms-compatibility-version=19.0.24215 -fdelayed-template-parsing -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -o "C:\\Users\\peter\\AppData\\Local\\Temp\\hello-8512ad.obj" -x c hello.c
clang -cc1 version 3.9.1 based upon LLVM 3.9.1 default target x86_64-pc-windows-msvc
ignoring duplicate directory "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A"
ignoring duplicate directory "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A"
#include "..." search starts here:
#include <...> search starts here:
C:\Users\peter\scoop\apps\llvm\current\bin\..\lib\clang\3.9.1\include
F:\visualstudio2015\VC\include
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A
End of search list.
hello.c(3,10): fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
C:\Users\peter\Downloads>
作为命令显示我从戽斗例如http://scoop.sh/安装LLVM和tryed通过简单地调用clang.exe编译代码。
我看着clang on Windows - incorrect header file path
,我可以证实,我没有命名的环境变量或者我的用户环境变量或从“VS2015或x64原生内运行铛我的系统环境变量
INCLUDE工具命令提示符“快捷方式似乎工作(基于刚从下载目录运行”clang hello.c“),但是我如何应用快捷方式对当前正在运行的cmd提示符所做的任何更改?
我没有使用Cygwin的/ MSYS/MinGW的原因是因为我相信他们是太重了两个磁盘空间明智和聪明的复杂
clang-cl将尝试几种技术来发现您的Visual Studio安装,以便找到运行时库标头(并确定-fms-compatibility-version的默认值)。如果您的VS安装在非标准位置,并且环境缺少常见线索(例如设置了VCINSTALLDIR或PATH中cl.exe的位置),它将无法找到它。使用vcvarsall.bat是确保环境具有足够信息的绝佳方法。 –
在编写本文的时候,我并不知道命令clang-cl,因为我主要在linux/osx上进行了开发,但是我很高兴看到这有帮助。 –