C++ 如何从命令行使用Visual Studio 2017 Codegen ClangC2?

C++ 如何从命令行使用Visual Studio 2017 Codegen ClangC2?,c++,linker,visual-studio-2017,build-tools,C++,Linker,Visual Studio 2017,Build Tools,我正试图使用Visual Studio 2017构建工具(在x64系统上)中的Clang/C2编译器构建一个简单的“空主”应用程序。我已经按照建议启动了..\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.batshell,但意识到它没有向clang.exe编译器添加路径,因此clang不可用。手动添加了路径(x64托管版本),因此也可以调用clang 尝试使用简单的空主函数体构建尽可能简单的程序会导致以下错

我正试图使用Visual Studio 2017构建工具(在x64系统上)中的Clang/C2编译器构建一个简单的“空主”应用程序。我已经按照建议启动了
..\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat
shell,但意识到它没有向clang.exe编译器添加路径,因此
clang
不可用。手动添加了路径(x64托管版本),因此也可以调用
clang

尝试使用简单的空主函数体构建尽可能简单的程序会导致以下错误:

clang hello.cc -o hello.exe
error: failed to load c2 (file not found)
c2.dll是clang应该拉入以进行链接的MS链接器,但它似乎找不到它

我曾尝试从IDE本身构建相同的程序,它显然是成功的,因为IDE分别调用编译器和链接器(即,它不依赖编译器调用链接器,而是直接调用link.exe)


有人知道如何使clang/c2编译器进入工作状态吗?(以前我可以用Visual Studio 2015做同样的工作)

问题是,clang太愚蠢了,无法在Windows中找到link.exe,尽管它位于
路径中

解决方案是使用
MKLINK
命令,在clang.exe可执行文件旁边创建指向link.exe的符号链接:

cd“c:\ProgramFiles(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\ClangC2\14.10.25903\bin\HostX64”
mklink link.exe“c:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\link.exe”
cd“c:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\ClangC2\14.10.25903\bin\HostX86”
mklink link.exe“c:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\link.exe”

上述解决方案是黑客的,可能需要管理员权限,并假设交联器与本机交联器兼容。

事实上,clang/c2没有使用路径来定位Link.exe,这很奇怪。我也用过程监视器追踪到了这一点。也可以将link.exe复制到当前目录中,但这更像是黑客行为。谢谢你的提示。