【问题标题】:Compiling clang/LLVM on win results in compile errors - how to fix?在 win 上编译 clang/LLVM 会导致编译错误 - 如何修复?
【发布时间】:2014-02-17 15:56:31
【问题描述】:

我偶然发现在我的 Win 7 64 位机器上安装 clang/LLVM 以在我的 Visual Studio 2010 安装程序中设置 Emscripten 时出现问题。我在 https://github.com/kripken/emscripten/wiki/Using-Emscripten-on-Windows 关注 Emscripten 的官方操作指南,偶然发现了有关需要编译 clang/LLVM 的问题。

svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_32/final llvm

cd llvm\tools

svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_32/final clang

cd ..\\..

mkdir build

cmake -G "Visual Studio 10" ..\llvm

msbuild LLVM.sln /p:Configuration=Release

结果有很多类似这个的错误:

CUSTOMBUILD : 错误 : 读取 '10.0\VC\bin\llvm\tools\clang\test\Index\ 时出错 pch-opaque-value.cpp' [c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\b 在\build\tools\clang\test\check-clang.vcxproj] 定制:错误:错误读取 '10.0\VC\bin\llvm\tools\clang\test\Index\ pch-with-errors.m' [c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\ build\tools\clang\test\check-clang.vcxproj]

显然,一条路径从 '10.0\VC...' 完全无效.. 它缺少前面的 'C:\Program Files (x86)\Microsoft Visual Studio '.. (我检查过 test\Index\ 中是否有类似的文件- 是的!

我的问题是:我该如何解决? a)我可以设置一个额外的包含路径,如 'C:\folder\MS Visual'(包括空格)?

到目前为止我已经尝试过: a) 从 Visual Studio Prompt 和普通 Prompt 执行此操作。使用默认和自定义位置。 b) 像

一样运行 MSBUILD

msbuild LLVM.sln /p:Configuration=Release /p:"VCBuildAdditionalOptions= C:\Program Files (x86)\Microsoft Visual Studio " c) 尝试更改 PATH/Systemroot.. 同时由于未知原因破坏了我的系统根目录(它抱怨像“C:\Program”这样的错误路径并明显删除了它)。

我被严重卡住了,除了这些步骤之外,我不知道任何事情。设置包含路径似乎没有帮助 - 尽管我想知道 CMAKE 的东西是否有空间问题或发生了什么。

由于 Emscripten 和可能 LLVM 的作者称他们的 Windows 支持为“实验性”,因此我并不是唯一一个在尝试设置 LLVM/clang 以供以后与 Visual Studio 2010(不是 2012..)一起使用时遇到麻烦的人。我很抱歉格式不好,由于某种原因,今天不允许我进行整洁的格式设置。不过,我正在使用夜间浏览器构建。

【问题讨论】:

  • 我经常使用 ninja CMake 生成器构建 llvm/clang(从 VS2012 x86 本机工具命令提示符运行 ninja),所以我知道它至少可以工作。

标签: cmake clang llvm emscripten asm.js


【解决方案1】:

如果您只需要构建 LLVM,您可以生成 NMake Makefiles 并使用 nmake 而不是 msbuild 构建。似乎某处存在引用问题(可能是 CMake、CmakeLists.txt、msbuild,谁知道)。

再想一想,这可能是环境变量的问题。你是如何设置 PATH 的?从新的“Visual Studio 开发人员命令提示符”尝试。

【讨论】:

  • 它会弹出一个丢失的 mspdb100.dll - 我猜一些错误的路径已经重置了 Visual Studio 命令提示符的总环境变量。有人得到了 Visual Studio 2010 安装的副本吗?打开 cmd.exe 并输入 ping 也坏了,我想那是因为我的 systemroot 被清空了。
  • @user1610743 如果您不以管理员身份运行构建,那应该是不可能的,这将是非常愚蠢的。无论如何,它似乎是你的环境。
  • NMake 在恢复我的 $path 后工作得无懈可击。它真的很空。我目前正在检查 Emscripten 现在是否可以与 Visual Studio AddIn 无缝协作。感谢您迄今为止的帮助!
猜你喜欢
  • 1970-01-01
  • 2014-10-01
  • 2020-03-22
  • 2020-01-19
  • 2014-09-29
  • 1970-01-01
  • 2011-03-17
  • 2011-12-20
  • 2012-02-27
相关资源
最近更新 更多