gnu专题

G++(GNU C++)安装及使用(windows)

安装步骤: 1、下载 Cygnus 的G++编译器(http://www.claremontmckenna.edu/math/ALee/g++/full.exe),并保存到E盘(或其它任意盘),格式为E:full.exe。 2、直接运行该文件,可能需要十几分钟的时间(中间会有停顿甚至没有任何提示性图片或者符号,需要耐心等待哦)。       或者Win + R ,输入cmd,按Ent

GNU工具集和MinGW

GNU工具集         GNU工具集包含了一系列的基本工具和实用程序,这些工具为系统管理员、开发人员和普通用户提供了丰富的功能和工具支持。         许多开源软件和项目都依赖于GNU工具集提供的稳定和强大的功能,因此GNU工具集的发展与完善对整个开源社区都具有重要意义。通过GNU工具集,用户可以在命令行下完成各种任务,如文件操作、进程管理、编程开发等,为用户提供了强大的工具支持。

GNU的伪操作 (25)

这里主要是 对 GNU的 各个伪操作进行 详细的解释。 先来看着几个 伪操作。 .byte,  .short,  .long,  .quad , .float ,  这个是关于 字节的。 .string   .ascii 是关于字符串的。 这个字符串编译器是可以自动在末尾补0 的。 举例: val:         .word 0x11223344         m

GNU/Linux - Open函数使用的O_CLOEXEC flag

在 Linux 中,“O_CLOEXEC ”标志与 “open ”系统调用一起使用,用于指定在使用 “exec ”系列函数(如 “execve”、“execl ”等)执行新程序时,“open ”返回的文件描述符应自动关闭。 In Linux, the `O_CLOEXEC` flag is used with the `open` system call to specify that

Gnu: binutils: ld: .gnu.warning.链接时的主动警告 glibc

这个是一个gnu的extension,glibc会使用这个功能,标记即将被淘汰的符号,产生链接时的警告,比如: /* When a reference to SYMBOL is encountered, the linker will emit awarning message MSG. *//* We want the .gnu.warning.SYMBOL section to be u

GNU/Linux - 进程关联的控制终端

Controlling terminal 在类 Unix 操作系统中,控制终端是与进程组相关联的终端设备,它控制着进程与终端输入和输出的交互。控制终端通常是启动进程的终端。它负责处理进程的输入(如键盘输入)和输出(如显示文本)。 A controlling terminal is the terminal device associated with a process

GNU/Linux - Linux kernel memory access

User space memory access from the Linux kernel An introduction to Linux memory and user space APIs By M. Jones 10 August 2010 Archive date: 2023-08-31 虽然字节可能是 Linux 中内存的最低可寻址单位,但页面才是内存的可管理抽

GNU 汇编语法基础

目录 一、引言 二、GNU 汇编基本结构 1.指令格式 2.注释 3. 段 三、寄存器和寻址方式 1.寄存器命名 2.寻址方式 四、指令集  1.数据传送指令 2.算术运算指令  3.逻辑运算指令 4.控制流指令  五、宏和函数  1.宏定义   2. 函数定义 六、总结   一、引言         在嵌入式系统开发和底层编程中,汇编语言是

ISO C++ 和 GNU C++ 的区别

C++ 的 ios 标准和 gnu 标准是两种编译器标准或模式,主要由编译器在编译 C++ 代码时所遵循的规范决定。它们之间的区别主要在于是否包含标准之外的扩展以及对特定功能的支持。 1. ISO C++ 标准 (-std=c++11, -std=c++14, -std=c++17, 等) 定义: ISO C++ 标准是由国际标准化组织 (ISO) 制定的 C++ 语言标准。每个标准版本如 C

GNU/Linux - RSYSLOG

Getting started with RSYSLOG in Linux 用于日志处理的 Rocket-fast 系统(rsyslog)是 Linux 中提供的一个系统实用程序,支持消息日志。它具有高性能、出色的安全性和模块化设计。这是一个非常有用的工具,可以接受来自各种来源的输入,并将其转换和存储到多个不同的目的地。 The Rocket-fast System for

为什么 GNU grep 如此之快?

为什么 GNU grep 如此之快?    编注:这是GNU grep的原作者Mike Haertel 在FreeBSD邮件列表中对 “GNU grep为什么比BSD grep要快” 所做的回答,下面是邮件正文内容: Gabor 您好, 我是GNU grep的原作者,同时也是一名FreeBSD用户,不过我一直使用的是-stable版本(也就是更老的版本),而没怎么关

【GNU笔记】内联函数与宏一样快 An Inline Function is As Fast As a Macro

内联函数与宏一样快 An Inline Function is As Fast As a Macro 通过声明内联函数,你可以指示 GCC 更快地调用该函数。GCC 可以实现这一点的一种方法是将该函数的代码集成到其调用者的代码中。这通过消除函数调用开销使执行速度更快;此外,如果任何实际参数值是常量,则它们的已知值可能允许在编译时进行简化,因此不需要包含所有内联函数的代码。对代码大小的影响是难以预

【GNU笔记】【C扩展系列】双字整数 Double-Word Integers

【GNU笔记】【C扩展系列】双字整数 Double-Word Integers 双字整数 Double-Word Integers ISO C99和ISO C++11支持至少64位宽的整数的数据类型,作为扩展,GCC在C90和C++98模式下支持它们。对于有符号的整数,只需写long long int,对于无符号的整数,只需写unsigned long long int。要使一个整数常量成为l

【GNU笔记】【C扩展系列】128位整数 128-bit Integers

【GNU笔记】【C扩展系列】128位整数 128-bit Integers 128位整数 128-bit Integers 作为扩展,整数标量类型__int128支持用于整数模式宽度足以容纳 128 位的目标。对于有符号的128位整数,只需写__int128;对于无符号的128位整数,只需写无符号unsigned __int128。对于宽度小于128位的long long整数的目标,GCC不支

GSL(GNU Scientific Library)在vs2010下的配置

一、下载gsl 1、从http://gnuwin32.sourceforge.net/packages/gsl.htm下载Complete package, except sources和Sources两个exe文件。(说明:这个网站我是没有打开过,所以我建议网友们可以选择第二种方式下载) 2、GSL科学计算库 二、安装 1、 首先安装从http://gnuwin32.sourc

/usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.9: undefined reference toTIFFIsTiled@LIBTIFF_4.0'

今天编译caffe ,本来编译过无数次caffe了,基本坑都能解决的。但这次惹恼我了。一直搞不定。 错误信息是这样的: /usr/lib/x86_64-linux-gnu/libopencv_highgui.so.2.4.8: undefined reference to TIFFIsTiled@LIBTIFF_4.0' /usr/lib/x86_64-linux-gnu/libopencv_

ARM GNU 汇编宏定义

在阅读u-boot1.1.6源码时遇到关于宏定义的问题,开始不太明白宏定义的具体的规则,现在算是明白过来了吧(^_^) 宏定义的定义格式: .macro   宏名称   参数(多个之间用“,”隔开,也可以不带参数)  宏的实体部分 .endm 既然是宏,那么它和c语言里面的宏定义特点是一样的,比如: 宏在调用处的展开,就是用宏定义的实体部分去完全取代宏名称,并且用实际的参数替换宏

GNU中的make和makefile

说来惭愧呀,调试驱动代码的时候每天都在使用make命令,却不知道make命令究竟是用来做什么的,上周有个师弟问我make和makefile究竟是用来做什么的,我只是根据自己的理解给他说了一下,回头想想自己说的也不对呀,所以才回过头来好好再学习一下make命令和makefile.这部分的内容主要参考了《Linux程序设计第四版》和http://hi.baidu.com/tvbljlqlf

GNU Linux 下安装目录的规范

1. 目录变量的重要性 安装目录应该通过变量命名,便于在非标准位置安装。变量的使用允许安装程序时通过make或configure命令行参数来覆盖默认值。 2. 标准文件系统布局 目录变量基于一个标准文件系统布局,该布局在GNU/Linux和其他现代操作系统中有所使用。 3. 变量的默认值 prefix:安装的根目录前缀,默认值为/usr/local。exec_prefix:用于构

C++备忘录084:被gcc/clang支持的最常见的gnu扩展

Conditionals with Omitted Operands x?:y 约等于 x?x:y,但前者x永远只被求值一次 Case Ranges case 'A' ... 'Z':,小心空格 Restricting Pointer Aliasing void fn (int *__restrict__ rptr, int &__restrict__ rref){/* … */}

GNU Radio创建qt time plot python OOT块

文章目录 前言一、创建自定义的 OOT 块1、安装相应依赖2、创建 OOT 块3、修改相关4、编译及安装 OOT 块 二、测试1、grc 图2、运行结果 三、资源自取 前言 官方提供的绘制时域波形的 block 名字叫做 QT GUI Time Sink,其底层实现是用 C++ 写的,但是我发现如果要是对收到的信号做一些其他的显示,例如在实现雷达测距的时候将 x 轴改为距离轴

/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found

原因是:程序运行机器和编译机器上的C++编译器版本不匹配问题解决方法:$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test$ sudo apt-get update$ sudo apt-get install libstdc++6-4.7-dev

描述GDB,GNU的原代码调试器

本文描述GDB,GNU的原代码调试器。(这是4.12版1994年一月,GDB版本4。16) * 目录: * 摘要:                        GDB的摘要 * 实例:                          一个使用实例 * 入门:                        进入和退出GDB * 命令:                        GDB 的命

GNU链接脚本学习-最简链接脚本

最简连接脚本必备的元素 注: 这里的最简是指能成功生成.bin文件的最简,不代表一定能使MCU跑起来,要跑起来还得指定中断向量表以及堆和栈 指定入口 ENTRY(ramcode_start), 其中ramcode_start 可以是汇编程序标号,也可以是c程序函数,但光指定入口连接器并不会把入口链接在最开头,还得在.c或.s中为ramcode_start划分一个段并在链接文件中将该段放在最前

GNU 链接脚本学习

很少有系统地讲解链接器的工作原理和语法规则的教程,当初笔者自学时也是费尽周折才淘到一些有价值的学习资料,现将我淘到的资料分享一下: GNU ld linker script 链接脚本详解: https://www.cnblogs.com/idalink/articles/11800860.html 配套例程: https://github.com/iDalink/ld-linker-scrip

GNU下C函数中调用汇编

GNU下C函数中调用汇编 汇编文件 .text .syntax unified .thumb 这三条是开头固定内容,指明这是程序代码、遵循统一的规范、支持thumb指令集 .type funname,%function 声明这是个函数 .global funcname 导出符号使得外部可见,即可导出函数也可导出全局变量 这里汇编函数结束前必须把PC改回原断点处,否则执行结果是0不是33.