从下载的源代码和Visual Studio 2013获取LLVM和Clang
Getting LLVM and Clang from downloaded sources and Visual Studio 2013
我刚刚下载了LLVM和Clang的源代码作为压缩文件。
到目前为止,我拥有的文件是:
- CFE-3.5.0.src.tar
- 编译器-rt-3.5.0.src.tar
- libcxx-3.5.0.src.tar
- libcxxabi-3.5.0.src.tar
- llvm-3.5.0.src.tar
我需要使用 Windows 8.1 和 Visual Studio 2013 配置 LLVM 和 Clang。
我问这个问题是因为到目前为止我咨询的教程使用 svn,但是从压缩文件中获取源代码,我对目录树应该是什么以便使 cmake 正常工作没有清晰的认识。
目录结构应为:
llvm/
projects/
compiler-rt/
libcxx/
libcxxabi/
tools/
clang/
我不确定libc ++对Windows的支持有多远,因为我只是使用MSVC的实现来实现ABI兼容性。
使用 Visual Studio 2013 编译 llvm 框架(llvm、clang、libc++ 等)并不是那么困难。
- 下载源代码
- 解压缩源
- 将解压缩的文件夹移动到它们在 llvm 源代码树中的位置。(例如:CFE 版本以名称 clang 进入
llvmtools
目录中。这个信息之王可以从CMakeFile.txt文件中获得(例如:add_llvm_external_project(clang)
在文件'llvm\tools\CMakeFile.txt中)。CMakeFile.txt是指示cmake程序如何生成项目的文件(例如:Makefile,VS项目,XCode项目...用于编译 LLVM) - 创建保存 vs2013 项目的目录
- 生成 VS2013 项目(例如:在上一个目录内执行:
cmake llvm_sources -G "Visual Studio 12"
其中llvm_sources是 llvm 源的根目录。 - 打开项目并编译(编译可能需要很长时间 30 分钟或更长时间)
lldb)可能需要额外的依赖项(例如:用于绑定的python c标头)。
从源代码编译时 clang 的问题之一是 clang 使用的包含标头(例如:std 库标头)的目录路径在源代码中是固定的:llvmtoolsclanglibFrontEndInitHeaderSearch.cpp
,在使用 VS2013 编译 llvm 的情况下,默认情况下它使用 MS std 标头。
编译几乎所有带有 clang 的中型程序会给您带来 clang 尚不支持的 MS 扩展、不符合 c++(vc++ 接受为有效)和其他类型的问题的错误,各种 boost 库也是如此(使用 MS 标头时)。
对我来说,更好的成功历史是使用相同的过程编译 MinGW for Windows并使用 MinGW 标头。在这种情况下,很可能需要手动修改 clang的 HeaderSearch 文件以搜索标头(最新版本的 clang 没有最新版本的 gcc 的搜索路径,至少在稳定版本 3.5.0 中)。
使用这种方法,我成功地在Windows 8.1中使用GCC 4.9.1与MinGW编译clang 3.5.0。
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 如何在Visual Studio Express 2013(C++)中获取特定驱动器的当前目录
- 使用 Visual Studio 2013 直接从 std::ostringstream 获取 const char *
- 使用 C++ 在 directX 11 中的 VS 2013 中获取 LNK 2019 错误
- 从下载的源代码和Visual Studio 2013获取LLVM和Clang
- 简单程序获取LNK2019:未解析的外部符号Visual Studio 2013
- 如何在visual studio 2013中使用c++从文本文件中获取整数
- Qt 5.5 MSVC 2013.获取Windows系统托盘几何图形时遇到麻烦