clang相关内容
我目前正在尝试在 MacOS 10.9 上使用 Cmake 构建一个 Cuda 项目.我的 C 和 C++ 编译器是 gcc,但似乎因为 Mavericks gcc 和 g++ 链接到了 CUDA 不支持的 clang. 有没有人找到一个好的解决方案来使用真正的 gcc,或者让 clang 在没有“dumpspecs"的情况下工作? 解决方案 10.9 的问题在于 gcc 实际上是
..
我们最近发现了一个报告,因为 GCC 5.1、libstdc++ 和 Dual ABI.似乎 Clang 不知道 GCC 内联命名空间的变化,所以它生成代码基于一组命名空间或符号,而 GCC 使用另一组命名空间或符号.在链接时,由于缺少符号而出现问题. 如果我正确解析了 双 ABI 页面,它看起来就像以 _GLIBCXX_USE_CXX11_ABI 和 abi::cxx11 为中心的问题,还
..
我正在玩一个在 C++ 中重载 lambdas 的技巧.具体: //对于 std::function#include //对于 std::string#include //对于 std::cout#include 模板 结构重载:F...{超载(F... f) : F(f)... {}};模板 自动 make_overload(F... f) {返
..
我最近遇到了这个精彩的 cpp2015 演讲 CppCon 2015:Chandler Carruth“调整 C++:基准,以及CPU 和编译器!天哪!" 提到的防止编译器优化代码的技术之一是使用以下函数. static void escape(void *p) {asm volatile("" : "g"(p) : "memory");}静态无效破坏(){asm volatile(""
..
我有来自 http://llvm.org 的 clang 3.9/releases/3.9.0/LLVM-3.9.0-win32.exe clang 版本 3.9.0 (branches/release_39)目标:i686-pc-windows-msvc线程模型:posix安装目录:C:\Program Files\LLVM\bin 和 gcc 6.2.0 (Mingw-w64) gcc
..
我正在尝试让 openmp 在我的 Mavericks 程序中运行,但是当我尝试使用标志 -fopenmp 进行编译时,我收到以下错误: ld:未找到 -lgomp 的库clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 我正在运行的命令是: gcc myProgram.cpp -fopenmp -o myProgram 此外,当我运行 gcc 时,我会收到 Clan
..
我正在编写一个函数,我想在其中接受 2 个 type 参数. 一个 string (char *) 一个 结构,其中有 n 个元素. 为了实现这一点,我正在考虑使用一个简单的 void * 作为参数类型.但我不知道如何安全地验证参数是一种类型还是另一种类型. 解决方案 void* 的翻译是 “亲爱的编译器,这是一个指针,没有关于此的额外信息.". 通常编译器比你(程序
..
考虑以下代码: struct foo {static constexpr const void* ptr = reinterpret_cast(0x1);};自动主()->内部{返回0;} 以上示例在 g++ v4.9(Live Demo)中编译良好,但在clang v3.4 (Live Demo) 并生成以下错误: 错误:constexpr 变量“ptr"必须由常量表达式初始化
..
作为这个问题 显示,使用 g++,我可以执行 g++ -S -masm=intel test.cpp.另外,使用clang,我可以执行clang++ -S test.cpp,但是clang 不支持-masm=intel(编译期间未使用的警告参数:-masm=intel).我如何使用 clang 获得英特尔语法? 解决方案 作为 @thakis 在下面注释,较新的版本Clang (3.5+)
..
我通过在运行时选择最新的 API 来支持 10.4+: if ([fileManager RespondsToSelector:@selector(removeItemAtPath:error:)])[fileManager removeItemAtPath:downloadDir 错误:NULL];别的[fileManager removeFileAtPath:downloadDir hand
..
我正在阅读一些名为 C++11 和 C++14 概述,由 Leor Zolman 先生提出.在第 35 页,他介绍了一种使用 decltype 进行求和运算的方法. struct Sum {模板 静态 T sum(T n) {返回 n;}模板 ///静态 T sum(T n, Args... rest) {静态自动总和(T n,Args
..
我写了这个 C++11 trait 模板来检查一个类型是否完整: template 使用 void_t = void;模板 结构 is_complete : std::false_type{};模板 struct is_complete>: std::true_type{}; 并像这样测试: struct Complete {};int main(){std::cout
..
只是好奇,GCC 或 Clang 工具集是否实现了等效于 MSVC 的 相同的 COMDAT 折叠 (ICF) 目前?如果没有,有什么计划吗?除了旧的 GCC 邮件列表消息之外,我似乎找不到任何有关该主题的最新权威链接. 如果不是,这是否意味着在不同类型上的模板实例化在生成的二进制文件中总是不同的函数(在它们没有完全内联的情况下),即使它们是二进制兼容的,或者是否有其他机制在其他层面处理这个
..
我试图声明一个 constexpr 指针初始化为某个常量整数值,但 clang 挫败了我的所有尝试: 尝试 1: constexpr int* x = reinterpret_cast(0xFF);test.cpp:1:20: 注意:常量表达式中不允许 reinterpret_cast 尝试 2: constexpr int* x = (int*)0xFF;test.cpp:1:20:
..
我使用 Clang 编译器在我的 Mac 上使用 Xcode 创建了一个 C++ 应用程序. 我想编译我的源文件以创建一个可以在 Windows 机器上运行的可执行文件,但是我无法让 Clang 为我生成一个可执行文件. 这是我尝试过的: clang++ -std=c++11 -stdlib=libc++ -arch x86_64 class1.cpp class2.cpp... -
..
我最近对 Xcode 5 中包含的新 clang 编译器感到沮丧.我想知道在 OS X 上安装 GNU GCC 的最佳方法是什么. 需要考虑的事项: 我不想使用 MacPorts、fink、homebrew 或任何其他第三方软件包管理器. 如果可能,我想使用从源代码编译的最新 GCC. 我需要现有的 GCC(到 clang 的硬链接)保持默认状态,但在需要时可以轻松使用 GNU
..
从 Mojave 升级到 Catalina 后,在 env 中设置:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk. 我无法编译使用 标头的程序. 我尝试更改 CFLAGS、CCFLAGS、CXXFLAGS 以指向 MacOSSDK 位
..
我使用的是 Mac OS X Sierra,我发现 clang(LLVM 版本 8.1.0 (clang-802.0.38))不支持 OpenMP:当我运行 clang -fopenmp program_name.c 时,出现以下错误: clang: 错误:不支持的选项'-fopenmp' 似乎clang不支持-fopenmp标志. 我在自制软件中找不到任何 openmp 库.根
..
在使用 XCode 6.0.1 的 OS X 10.9.5 下,当我尝试从终端运行 make 时遇到以下问题: 致命错误:找不到“wchar.h"文件 这个问题在最近升级到 Mavericks 之前没有发生. 解决方案 首先确保安装了最新的 XCode.接下来,我们需要安装/修复/更新命令行工具.为此,运行 xcode-select --install 以前,XCode 期望它的活
..
我使用的是 mac,我使用 homebrew 来安装 gmp. Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx在 main.cpp:2 包含的文件中:./gcjlib.hpp:4:10: 致命错误: 'gmpxx.h' 文件未找到#include ^产生了 1 个错误. 然后我明确告诉 g++ 使用 /usr/local/in
..