首页 > TAG信息列表 > clang-2

Termux无法运行C程序?

所以我在Android上使用带有termux的clang编译了一个简单的cpp程序,但是我无法运行该程序,出现以下错误: $./execname -bash: . /execname: Permission denied 解决方法:您是否正在共享存储上运行(在/ sdcard下)?那里的文件系统不支持可执行权限. 尝试直接在$HOME目录中编译并运行

c-lang无限尾递归优化

#include <iostream> int foo(int i){ return foo(i + 1); } int main(int argc,char * argv[]){ if(argc != 2){ return 1; } std::cout << foo(std::atoi(argv[1])) << std::endl; } %clang -O2 test.cc %时间./a

clang 4使用c 1z构建错误

我刚刚将我的arch linux系统更新到包含gcc 7.1.1的最新版本.试图建立这个: #include <functional> int main(int argc, char** argv) { return 1; } 使用命令 clang++ main.cpp -std=c++1z 导致错误: In file included from main.cpp:1: In file included from /usr/bin/..

c – 模板模板参数和clang

我有模板模板参数和clang的问题(可能是我的).以下玩具示例在g 4.7.0下编译并运行,而不是clang 3.0(基于LLVM 3.0),两者都是ubuntu 12.04. 玩具示例(test_1.cpp): #include <iostream> #include

c – 获取变体在clang下失败但不是g

以下代码: variant<string> x = "abc"; cout << get<string>(x) << "\n"; 在g下工作正常(版本7.2).但是,当使用libstdc在clang(版本5.0)下编译时,我在get方法中得到以下错误: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/va

c – 使用std :: acos和clang而不是g的Constexpr编译错误

我想尝试将项目从gcc迁移到clang.我承认我的无知,我不知道为什么以下的代码 template <typename T> constexpr T pi{std::acos(T(-1.0))}; 用g静默编译但是clang会产生错误 trig.hpp:3:13: error: constexpr variable 'pi<float>' must be initialized by a constant expression

c – P0522R0如何破坏代码?

今天我正在阅读clang的C 17支持页面.我注意到一些奇怪的事情.功能匹配模板模板参数与兼容参数(P0522R0)标记为部分,因为它必须通过开关激活.他们的说明says: Despite being the the resolution to a Defect Report, this feature is disabled by default in all language versions

c – Qmake – 如何配置包含路径顺序?

我在OpenSUSE上有Qt-Creator.在它中有一个带有编译器’clang’的C项目.我有’.pro’配置: INCLUDEPATH += "/✪Data_Disk⚜✼/Build/include/c++/v1/" LIBS += "-stdlib=libc++" LIBS += "/✪Data_Disk⚜✼/Build/lib/libc++abi.a" QMAKE_CXXFLAGS += -std=c++14 -stdlib=li

c – 使用enum-base编写枚举时出现模糊的重载,但只能使用clang

我想使用operator<<编写具有指定基类型的枚举.令我惊讶的是,似乎我必须自己写出运算符.例如,我想写的代码是 #include <iostream> enum myenum : uint16_t { X = 0, }; int main () { std::cout << "Value is" << X << std::endl; return 0; } gcc 4.8和visual stu

由于虚拟析构函数/ clang,C链接器警告

我收到了由虚拟析构函数引起的链接器警告.我的环境是KEIL编译器v6.5(clang). Warning: L6439W: Multiply defined Global Symbol __clang_call_terminate defined in invalid_group(new.cpp.o) rejected in favor of Symbol defined in .text.__clang_call_terminate(cxa_handlers

c – 取决于编译开关/ NDEBUG,在at()和operator []之间为std :: vector进行交换

我知道g(和MSVC)的开关允许对operator []进行边界检查,遗憾的是,据我所知,LLVM的libc没有这种开关或调试代码的完整实现. 在我当前的项目中,我一直在使用我自己的vector实现(几年前我为可移植性编写),它不会抛出异常,并且对operator []和(在实际上有一个调用另一个和他们的行为完全

c – 布尔值是否应在分配时被截断为true或false?

我发现存储在bool变量(btw Visual-C和clang)中的值存在差异,如果存储的值既不是true也不是false(如果它以某种方式被破坏),我不确定是否这是一个Visual-C错误,或者如果它只是UB我应该忽略. 请参考以下示例: #include <cstdint> #include <iostream> #include <string> #include <li

c – GCC和Clang代码性能的巨大差异

社区.我有这段代码在欧几里德3D空间中找到最近的一对点.这个问题既不是关于算法也不是它的实现或其他什么.问题是,使用GCC而不是Clang编译时运行速度要慢得多.最令人困惑的是,它在随机样本上具有可比较的执行时间,并且在某些特定样本上具有相似的100倍. 我怀疑GCC中可能存在一个错

C包含引用的对向量的奇怪行为

我刚发现一些非常奇怪的东西,看看这段代码: #include <cstring> #include <cstdio> #include <utility> #include <vector> using namespace std; class A { public: int n = 0; A(const char* p) { n = strlen(p); }; A(A const&) = delete;

c – 为std :: runtime_error子类调用“编译器错误的已删除构造函数”

我从std :: runtime_error派生了一个异常类,以便添加对异常流的支持.我得到一个奇怪的编译器错误输出与clang,我不知道如何解决? clang++ -std=c++11 -stdlib=libc++ -g -Wall -I../ -I/usr/local/include Main.cpp -c Main.cpp:43:19: error: call to deleted constructor of 'Ear

c – 相当奇怪的铿锵声问题

在发布此帖子之前,我尝试了一些Google搜索,但说实话,我不知道要搜索什么.我有一个C项目,并且很乐意使用GNU编译器(g).今天我尝试用clang编译并得到一个段错误. 好的,好的,我可以解决这个问题.在仔细阅读我的代码并打印一些东西之后,我就能解决问题了.然而,这个解决方案让我感到非常

来自libc的istringstream的析构函数中对operator delete的未定义引用

我试图通过两种方式从trunk(~3.7)构建clang:通过gcc(4.8)和(旧)clang(来自数据包管理器的3.4和3.5).它们都包含相同的步骤: export CC=clang export CXX=clang++ export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:$HOME/llvm/projects/libcxxabi/include" sudo apt-get install git

clang拒绝模板`/`运算符,但gnu c接受它

在科学编程的单元管理环境中,我正在管理以下课程: template <class UnitName> class Quantity { double value; public: Quantity(double val = 0) : value(val) {} Quantity(const Quantity &) {} Quantity & operator = (const Quantity &) { return *this; }

C用模板和虚函数标记疯狂

在重构一个相当大的代码库的过程中,我的编译器想出了一个误解我的好方法.这是我所说的最简单的例子: #include <iostream> class Foo { public: virtual int get() = 0; template <typename T> int get(int i) { return 4 + i; } }; class Bar : public Foo { pu