草庐IT

arm-linux-gnu-gcc

全部标签

c++ - 我怎样才能让 GCC 在 ROM 中放置一个 C++ constexpr?

我为LPC1114编译,这是一个小型ARM(实际上是Cortex)目标。RAM比ROM更受限制。我使用最新的Mentor(CodeBenchLite)GCC编译器(GCC4.6.3)。我有一些我想在ROM中拥有的常量对象。据我了解,下面代码中的ffx对象应该在ROM(代码)中结束,但它被放置在DATA中。classflop{public:intx;constexprflop(intx):x(x){}};externconstexprflopffx(1);如何说服编译器预先计算对象并将其放入ROM?或者我应该问:我能以某种方式期望G++编译器为ffx生成ROMable数据吗如果是这样,我

【Linux】make和makefile详解

目录一、概述二、为什么要用makefile三、创建简单的Makefile四、makefile的规则五、makfile的工作流程六、makefile中声明变量七、clean与伪目标一、概述当谈论到Linux中的软件构建工具时,不得不提到Makefile。Makefile是一种文件,它包含了一组规则,用于指导构建系统在源代码中生成可执行文件或库。它是使用GNUMake软件的标准格式。Makefile的主要目的是描述代码文件之间的依赖关系以及如何构建以达到特定目标。通过定义规则和命令,开发人员可以轻松地管理项目的复杂构建过程。Makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个ma

c++ - C++11 <codecvt> header 在最新的 GCC 中可用吗?

看完Isnotastandardheader?我不确定该怎么做,因为我的Windows版本的代码库使用在宽字符串和字符串之间进行转换。我目前在我的代码的Linux版本中使用GCC4.7。是在最新的GCC中也丢失了吗?有什么解决方法?顺便说一句,正如它所说的here以下代码不适用于GCC:wstringws=L"hello";stringns(ws.begin(),ws.end()); 最佳答案 使用mbsrtowcs和wcsrtombs怎么样?尽管它们来自C,但与std::string和std::wstring一起使用不是很方便(但

c++ - 带变量的 GCC 内联 ASM

我正在尝试在我的C++源代码中使用以下ASM内联代码,为VisualStudio提供:__asm{movecx,target}其中target是一个void*指针。我不知道如何将其转换为GCC兼容代码。我知道GCC使用像这样的synthax:asm(".intel_syntaxnoprefix");asm("movecx,target");但显然在这种情况下变量有问题。那么,任何人都可以向我解释如何使用适用于Windows的GCC将指针与内联ASM一起使用吗?感谢您的帮助。 最佳答案 试试这个程序集,这可能会有帮助....至少它对我

c++ - 如何让 clang 搜索 gcc 的头文件?

我想用clang(3.3)替换gcc来构建我的C++11代码,所以我应该使用clang的选项-stdlib=libstdc++(让它看到STL头文件)。该选项有效:clang看到像string这样的header,但找不到c++11header(type_traits),因为clang在4.2目录中搜索:clang++-stdlib=libstdc++-E-xc++--v如何让它查看GCCheader的never版本?据我所知,C++11的clang只支持libc++(不是libstdc++),所以安装libc++的唯一方法是什么? 最佳答案

c++ - 默认函数参数值在模板中可见但不应该 (gcc)

考虑下面的代码:#includevoidf(int,int);voidg(int,int);structfunctor{templatevoidoperator()(T&&...params){returnf(std::forward(params)...);}};intmain(){functor()(1);//canusethedefaultvaluehere,why?!//g(1);//errorhereasexpected,toofewarguments}voidf(inta,intb=42){}voidg(inta,intb=24){}这是一个围绕函数调用的薄包装。但是,在f

c++ - 在 ARM 上编译 ChromeDriver

我需要在ARMv7RaspberryPi3上将Selenium与ChromeDriver结合使用(Firefox不适合我的项目),但因为只有pre-compiledbinaries对于x86和x64,我尝试从sourcecode编译它靠我自己……但由于Chromium项目使用了很多我不熟悉的工具来编译源代码,我什至无法开始这个过程。我在互联网上搜索了几个小时如何为ARM系列编译它,但我找不到任何教程,甚至找不到关于它的成功案例。所以,我有两个问题:这“可行”吗?有人知道我能做什么吗? 最佳答案 arm64、arm7l、win32-a

c++ - 编译时抽象类处理中的 clang vs gcc

其中之一issuesnlohmann/json开源库引起了我的注意。我有一个案例的最小复制品doesnotcompile在少数版本的桌面gcc(4.8、4.9,也尝试过5+)下,但使用macclang和Androidndk的gcc4.9编译得很好#includestructbase{virtualvoidfoo()=0;};intmain(){(void)numeric_limits::is_signed;}GCC正在尝试实例化std::numeric_limits使用基类而不是派生类:/usr/include/c++/4.8/limits:Ininstantiationof'stru

c++ - 为什么一些 GCC 警告标志不属于 C++ 语言但在 C++ 中工作?

我正在探索GCC使用gcc-Q--help=warning语法提供的警告。(有关详细信息,请参阅3.2OptionsControllingtheKindofOutput。)我想到的是许多(GCC版本6.4.1中的250个中有109个)警告未归类为C++。我的意思是,在执行受限查询gcc-Q--help=warning,c++时,它们不会出现。(出于好奇,81个警告既不是C++也不是C。)然而,至少其中一些警告在C++中有效。以-Waggregate-return为例。(在CompilerExplorer上查看。)-Waggregate-return默认情况下是禁用的,我知道它可能没什么

c++ - GNU 的 nana 库死了吗?是否有后继者在使用?

查看http://savannah.gnu.org/projects/nana/似乎上次的工作是四年前在Nana上完成的,nana的官方gnu.org主页是一个占位符。鉴于不活跃的项目往往会遭受比特腐烂:项目结束了吗?有继任者吗?人们是否有其他更好的C/C++断言/日志记录库? 最佳答案 如果您正在寻找日志记录库,请使用Log4Cxx:http://logging.apache.org/log4cxx/如果您正在寻找断言检查,请使用单元测试框架,例如UnitTest++:http://unittest-cpp.sourceforge