在Windows上安装Clang遇到的问题

7
我一直在尝试在Windows XP虚拟机中安装clang,在这个页面中,我首先尝试使用来自LLVM下载的预构建二进制文件进行安装,但是出现了以下错误:
Failed to find MSBuild toolset directory

所以,我尝试按照这个问题中的步骤编译clang:在Windows上编译Clang,但我还遇到了一个错误:

In file included from C:\llvm-3.7.0.src\lib\Support\DynamicLibrary.cpp:40:0:
C:\llvm-3.7.0.src\lib\Support\Windows/DynamicLibrary.inc:34:56: error: 'PENUMLOA
DED_MODULES_CALLBACK64' has not been declared
typedef BOOL (WINAPI *fpEnumerateLoadedModules)(HANDLE,PENUMLOADED_MODULES_CALL
BACK64,PVOID);
                                                    ^
C:\llvm-3.7.0.src\lib\Support\Windows/DynamicLibrary.inc: In static member funct
ion 'static llvm::sys::DynamicLibrary llvm::sys::DynamicLibrary::getPermanentLib
rary(const char*, std::string*)':
C:\llvm-3.7.0.src\lib\Support\Windows/DynamicLibrary.inc:70:65: error:  invalid conversion from 'BOOL (__attribute__((__stdcall__)) *)(PSTR, DWORD64, ULONG, PVOID) {aka int (__attribute__((__stdcall__)) *)(char*, long long unsigned int, long
unsigned int, void*)}' to 'int' [-fpermissive]
 fEnumerateLoadedModules(GetCurrentProcess(), ELM_Callback, 0);
                                                             ^
lib\Support\CMakeFiles\LLVMSupport.dir\build.make:1912: recipe for  target 'lib/S
upport/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.obj' failed
mingw32-make[2]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/DynamicLibrary.cpp.
obj] Error 1
CMakeFiles\Makefile2:200: recipe for target 'lib/Support/CMakeFiles/LLVMSupport.
dir/all' failed
mingw32-make[1]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
Makefile:148: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

我真的不知道现在该做什么或者我做错了什么,所以在这个主题上的任何帮助都将是有用的。

1个回答

2
您可以查看“使用PlatformIO进行物联网开发”,其中展示了相同的错误消息。

http://electronicsworkbench.io/user/pages/02.blog/platformio/clang-install-error.jpg

检查已安装的文件,我在C:\Program Files\LLVM\tools\msbuild目录中找到了一个install.bat
它在诸如“%ProgramFiles%\MSBuild\Microsoft.Cpp\v4.0\Platforms\%PLATFORM%\PlatformToolsets”等地方搜索MSBuild工具集目录,并在找到它们时将一些文件从LLVM复制到MSBuild目录中。
否则会抛出上述错误。
这证实了该错误与此环境无关,我们可以忽略它。

在您的情况下,您可能无法忽略它,因此请仔细检查该文件夹的内容/存在性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接