swift - swift-lldb 编译失败,出现 c++11 错误
问题描述
我正在尝试编译(按照https://github.com/apple/swift-lldbswift-lldb
的说明)。我安装了以下依赖项:Ubuntu 14.04
Clang-3.5
Cmake version 3.5.2
Python version 2.7.6
在运行构建脚本步骤lldb/scripts/build-swift-cmake.py --test
时,我看到以下错误:
CMake Warning at cmake/modules/HandleLLVMOptions.cmake:185 (message):
-fPIC is not supported.
Call Stack (most recent call first):
cmake/modules/HandleLLVMOptions.cmake:216 (add_flag_or_print_warning)
CMakeLists.txt:616 (include)
CMake Error at cmake/modules/HandleLLVMOptions.cmake:429 (message):
LLVM requires C++11 support but the '-std=c++11' flag isn't supported.
Call Stack (most recent call first):
CMakeLists.txt:616 (include)
我已经定义了环境变量CC
并CXX
指向clang
C 和 C++ 编译器。
root:/myswift# echo $CC
/usr/bin/clang
root:/myswift# echo $CXX
/usr/bin/clang++
我还在. clang
_ 不知道我在这里缺少什么。有人可以帮忙吗?c++11
clang-3.5
解决方案
clang-4.0
作为安装的一部分提到的应该支持-std=c++11
标志(刚刚测试过clang-4.0.1)。但是,升级到clang-6.0
似乎可以解决此构建过程错误。
直接在自动创建的构建目录中运行cmake
(通过快速构建脚本)可用于更详细地调查构建失败。要在此处指定编译器,而不是设置CC
和CXX
环境变量(这适用于 GNU 配置脚本),可以通过以下方式设置编译cmake
器
cmake -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ path_to_src_or_build_directory
CMakeCache.txt
可能必须删除现有的,以便遵守上述参数。
clang++
我观察到的安装问题是clang++
找不到C++ headers
(即,如果C++
标头位于 以外的非标准位置/usr/include
,但在 Ubuntu 的情况下不太可能)。万一/usr/bin/clang++
不能编译一个简单的程序,比如
#include <iostream>
using namespace std;
int main() {
cout << "hello" << endl;
return 0;
}
无法找到iostream
包含文件,它可能有助于设置工作编译器的应包含、、、等的位置(可能--gcc-toolchain=/pathtoaworkinggcc
在pathtoaworkinggcc
Ubuntuinclude
安装lib
的情况下)。bin
C++
g++
推荐阅读
- javascript - 淡出,更改然后淡入延迟的文本
- java - XDocReport 不是 ImageIO SPI 类
- r - 使用 geom_text 对 ggplot2 中的各个方面进行注释
- java - 我的配置文件出现 PlayerJoinEvent 错误
- c# - C# - 有没有办法在类中调用泛型类型的静态方法?
- html - html电子邮件中的布局
- icalendar - ical/ics:每年进行 3 个月提醒的更好方法
- python - 如何在pygame中画一条向上移动屏幕的线
- android - react-native run-android 错误:Atom 上的 gradlew.bat
- python - 将 K 平均聚类距离度量更改为堪培拉距离或 python 上的任何其他距离度量