草庐IT

arm-linux-gnu-gcc

全部标签

c++ - Windows 和 Linux 上的线程

我在Internet上看过有关在Windows上使用C++制作多线程应用程序的教程,以及在Linux上执行相同操作的其他教程,但不是同时适用于这两种应用程序。是否有即使在Linux或Windows上编译也能正常工作的函数? 最佳答案 您需要使用一个包含Linux上的pthread和Windows上的Win32线程库(CreateThread和friend)的实现的库。Boostthread是一种将系统抽象化的流行选择。 关于c++-Windows和Linux上的线程,我们在StackOv

c++ - 对于 GCC 和 GCC 版本中的每个

我如何在GCC中使用foreach循环?我如何获得GCC版本?(在代码中) 最佳答案 使用lambda,例如//C++0xonly.std::for_each(theContainer.begin(),theContainer.end(),[](someTypex){//dostuffwithx.});range-basedforloop自4.6起受GCC支持。//C++0xonlyfor(autox:theContainer){//dostuffwithx.}"foreach"loopsyntax是MSVC扩展。它在其他编译器中不

【Linux】 Linux编译器-gcc/g++使用

💗个人主页💗⭐个人专栏——Linux学习⭐💫点击关注🤩一起学习C语言💯💫目录导读1.Linux编译器-gcc/g++使用1.1引入1.2初识gcc/g++1.3程序运行的四个阶段1.3.1预处理1.3.2编译1.3.3汇编1.3.4链接1.4gcc的选项用法2.函数库2.1引入2.2函数库分类2.3动态库2.4静态库导读我们上次讲到yum命令和vim指令的运用,今天我们来讲一下gcc,1.Linux编译器-gcc/g++使用1.1引入我们在之前,也在Linux里写过C语言的代码,之后gcc加文件名运行之后,在运行./a.out.[zhy@centos7~]$vimproject.c[zhy@c

c++ - GCC 内部编译器错误 : Segmentation fault

我尝试包含一个我在cmake中定义的文件。-DUNINSTD_INC=$ENV{TARGET_FS}/usr/include/unistd.h我检查了这个定义,UNINSTD_INC是正确的文件路径。导致段错误的代码片段如下:#defineSURROUND(x)QUOTE(x)#defineQUOTE(x)#x#includeSURROUND(UNINSTD_INC)如果我编译代码,会出现以下错误:unistd.h:1:内部编译器错误:段错误请提交完整的错误报告,如果合适,使用预处理源。有人有办法解决这个问题吗?或者其他包含预定义文件的方法?gcc版本:gcc版本4.6.3(Ubunt

AVR-GCC 中的 C++ 标准合规性

我正在学习为我的Arduino编程,但我有相当扎实的C++背景,这意味着我很失望地发现我无法使用C++标准库。我一直在四处寻找,试图找出确切的原因,到目前为止,唯一合理的解释是AVR-GCC不符合C++语言标准。现在,我知道大多数编译器都与标准有细微的偏差,但我认为一定有一些非常大的东西将AVR-GCC与GCC、Clang或我以前使用过的任何其他编译器区分开来.就像一些完全缺失的非常重要的功能,或者什么的。例如,我不能使用std::vector肯定有充分的理由。它太有用了,不能无缘无故地离开。那是什么?AVR-GCC方言中使C++标准库无法在Arduino上运行的巨大漏洞是什么?我问这

c++ - Apple GCC 4.2.1 将指针传递给构造函数

假设我有一个类并且它或其成员没有明显的问题,但是如果我尝试将几个类成员的地址传递给同一模块中的另一个类,第一个参数被正确传递,但是第二个总是NULL!怎么会这样?是否存在某种隐藏的堆栈/堆损坏或某种对齐问题?MSVC中没有问题,但是...classmyType2{charc1;charc2;}__attribute__((aligned(1)));//Yes,aligndiffersandIcan'tchangeitclassMyClass2{public:MyClass2(myType1*type1,myType2*type2,intdata){//type1anddataareok

c++ - SPARC : How to handle integer doubleword pairs? 的 GCC 内联汇编

据我了解,在SPARC中,32位整数存储在单个寄存器中,64位整数存储在相邻的寄存器对中,偶数寄存器包含高32位,奇数寄存器包含低位32位。我需要编写一些专门的SPARC内联汇编宏(内联汇编函数也可以)来处理64位整数双字对,但我不知道如何进行通用引用(使用GCC扩展内联汇编)到我的内联汇编中这对的两半。虽然我的汇编宏比下面显示的MULTIPLY()宏稍微复杂一点,但乘法示例(如果有效)将演示如何处理64位双字对的两半。谁能告诉我如何修复我的MULTIPLY()宏?以防万一,我在...bash-2.03$uname-aSunOS[...]5.8Generic_117350-39sun4

c++ - 与模板特化成为 friend 时可能出现 gcc 错误

在回答关于SO的另一个问题时,我遇到了一个有点可疑的gcc编译器错误。有问题的片段是templateclassA;templatevoidoperator*(A,A);templateclassA{friendvoid::operator*(A,A);...最后一行给出了著名的警告frienddeclaration'voidoperator*(A,A)'declaresanon-templatefunction稍后会导致硬错误。完整代码可见here.现在,问题是我认为这种行为不合适。[temp.friend]/1中的标准说:Forafriendfunctiondeclarationth

optimization - 有没有办法告诉 GCC 不要优化一段特定的代码?

我正在从事一个依赖编译器优化的项目,但我需要一些不被GCC优化的代码。这可能吗? 最佳答案 GCC4.4有一个属性:intfoo(inti)__attribute__((optimize("-O3")));记录在:https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Function-Attributes.html#index-g_t_0040code_007boptimize_007d-function-attribute-3195 关于optimi

【openssl】Linux升级openssl-1.0.1到1.1.1

文章目录前言一、openssl是什么?二、使用步骤1.下载2.编译安装3.一些问题总结前言记录一次openssl的升级,1.0.1升级到1.1.1一、openssl是什么?OpenSSL是一个开源的加密工具包,广泛用于安全套接层(SSL)和传输层安全(TLS)协议的实现。它提供了一组用于加密通信的库和工具,被许多网络应用和操作系统广泛使用。二、使用步骤1.下载首先,我们需要从官方网站下载最新版本的OpenSSL源代码。你可以访问OpenSSL官方网站获取最新的稳定版本。wgethttps://www.openssl.org/source/openssl-1.1.1w.tar.gz2.编译安装下