草庐IT

llvm-gcc

全部标签

c++ - 为什么这个程序是用 gcc 编译的,而不是用 g++ 编译的?

以下程序使用gcc编译但不使用g++,我只生成目标文件。这是prog.c:#include"prog.h"staticstructclnt_opstcp_nb_ops={4};这是prog.h:#ifndef_PROG_#define_PROG_#include#endif当我这样做时:gcc-cprog.c生成目标代码但是,g++-cprog.c给出错误:variable‘clnt_opstcp_nb_ops’hasinitializerbutincompletetype如何解决这个问题? 最佳答案 在clnt.h中看这个结构体的

c++ - 带有大括号的 char 数组的非静态成员初始化在 gcc 中给出了一个错误,而不是在 clang 中

考虑以下代码:#includeclassA{charname[40]={"Blank"};//notethebracesherepublic:constchar*getName(){returnname;}};intmain(){Aa;std::cout它在gcc(最新版本5.2.0)中给出错误:prog.cpp:5:28:error:invalidconversionfrom'constchar*'to'char'[-fpermissive]charname[40]={"Blank"};^但clang并非如此,它可以使用-std=c++11-pedantic-Wall完美编译。在这里

c++ - GCC 使用哪种排序算法?

来自cplusplus.comstd::sort复杂度定义:ComplexityApproximatelyN*logNcomparisonsonaverage(whereNislast-first).Intheworstcase,uptoN2,dependingonspecificsortingalgorithmusedbylibraryimplementation.我的应用在运行时有一些限制。所以我需要知道我是否应该实现自己的排序算法,否则只会浪费时间。它们是用gcc编译的,所以我需要知道gcc使用哪种排序算法。 最佳答案 GCC

c++ - 为什么 C++ 编译器 (gcc) 认为函数是 `virtual' 字段?

我的类中有以下方法定义:virtualCalc*Compile(Evaluator*evaluator,ResolvedFunCall*fun_call,string*error);出于某种原因,GCC提示说:错误:“编译”声明为“虚拟”字段为什么它会认为Compile是一个字段而不是方法?有什么想法吗? 最佳答案 当第一个参数对它没有意义时,我得到了那个错误。检查Evaluator是否已知为类型:structA{virtualvoid*b(nonsense*,string*);};=>error:'b'declaredasa'vi

c++ - 解析和修改 LLVM IR 代码

我想阅读(解析)LLVMIR代码(保存在文本文件中)并向其中添加一些我自己的代码。我需要一些这样做的例子,也就是说,这是如何通过使用LLVM为此目的提供的库来完成的。所以基本上我想要的是将IR代码从文本文件读入内存(也许LLVM库以AST形式表示它,我不知道),进行修改,比如在AST中添加更多节点然后最后写返回IR文本文件中的AST。虽然我需要阅读和修改IR代码,但如果有人可以提供或推荐我阅读(解析)它的一些示例,我将不胜感激。 最佳答案 首先,纠正一个明显的误解:LLVM是一个用于操作IR格式代码的框架。看不到AST(*)-你读取

c++ - GCC/进行构建时间优化

我们有使用gcc和make文件的项目。项目还包含一个大子项目(SDK)和许多使用该SDK和一些共享框架的相对较小的子项目。我们使用预编译的头文件,但这只会让重新编译变得更快。是否有任何已知的技术和工具可以帮助构建时优化?或者,也许您知道一些关于此主题或相关主题的文章/资源? 最佳答案 您可以从两个方面解决问题:重构代码以降低编译器看到的复杂性,或者加快编译器的执行速度。在不接触代码的情况下,您可以向其中添加更多的编译功能。使用ccache避免重新编译您已经编译过的文件,使用distcc将构建时间分配给更多机器。如果您在本地编译,请使

c++ - 在不设置环境变量的情况下在 Windows 7 中运行 MinGW gcc 编译器

我在Windows中有一个MinGW文件夹,我没有在环境变量中设置任何路径。当我运行以下命令时:D:\toolchains\MinGW\bin>gcc.exehw.c-ohw我遇到了这个错误:gcc.exe:error:CreateProcess:Nosuchfileordirectory据我了解,这个问题是因为我没有在环境变量中添加这个路径。如何在不将此路径添加到环境变量的情况下解决此问题,因为我打算从Python脚本运行此命令。 最佳答案 您要么必须修改PATH环境变量,要么使用正确的工作目录启动gcc进程。你可以在python

ubuntu 编译安装支持CUDA的OpenCV+其他opencv细节(需要特定版本gcc)

安装须知cuda支持在安装完“linuxCUDAtoolkit+cudnn+tensorrt的安装”之后进行支持cuda的opencv安装否则报错:CMakeErroratmodules/dnn/CMakeLists.txt:41(message):DNN:CUDAbackendrequiresCUDAToolkit.PleaseresolvedependencyordisableOPENCV_DNN_CUDA=OFF-$nvcc-v----->Command'nvcc'notfound,butcanbeinstalledwith:sudoaptinstallnvidia-cuda-toolk

objective-c - 帮助 GCC 和 ObjectiveC 代码以及 Cygwin

是否可以在cygwin下使用GCC正确构建objective-c代码。我有以下应在Mac环境中工作的应用程序,但无法获得与gcc一起工作的最基本的东西。我需要更多的库吗?#import"HelloWorldApp.h"intmain(intargc,char*argv[]){return0;}//Endofthe//@interfaceCar{inttest;}//Theregistrationisaread-onlyfield,setbycopy@propertyint(readonly,copy)test;//thedriverisaweakreference(noretain),

github, git, google: clang-前端插件-给各种无花括号的“块”加花括号-基于llvm15--clang-plugin-add-brace-----google镜像

处理的语句case术语约定或备忘case起止范围:从冒号到下一个’case’开头,简称有:case内、case内容Ast:Abstractsyntaxtree:抽象语法树没插入花括号的case若case内,以下任一条成立,则跳过该case即不会对该case内容用花括号包裹.有#define、有#include、有直属变量声明、空case、有宏调用详述预处理回调收集#include指令、宏定义CollectIncMacro_PPCb:CollectInlucdeMacroPPCallbacks:收集Inlucde和Macro的预处理回调收集#include、#define,以判断case起止范围