gcc-4.3及以上版本实现了c99的inline semantics [ZZ]

【信息科学与工程学】计算机科学与自动化——第二十四篇 编译器10——编译原理与词法分析02 链接时优化:全局DCE(579)、LTO(580)安全编译:CFI(581、586)、ASan(582)、UBSan(583)、MSan(584)、TSan(585)、CET(587)、PAC(588)、MTE(589)、SFI(590)、Wasm沙箱(591)侧信道与秘密:侧信道缓解(592)、常量时间(593)、秘密清理(594)内存安全:ASLR(595)、栈保护(596)、整数溢出检测(597)、除零检测(598)、空指针检测(599)、数组边界检查(600)至此编号达到600。 阅读详情
Quote From: http://zhllg.spaces.live.com/blog/cns!956A48A2D7ED7265!2816.trak

gcc-4.3及以上版本实现了c99的新inline semantics
之前用extern __inline的地方应该改用__extern_inline
这个东西在#ifdef __GNUC_STDC_INLINE_ 的情况下会给函数自动加上属性 __gnu_inline__,以恢复旧的semantics
详情请见
http://gcc.gnu.org/gcc-4.3/porting_to.html
用gcc-4.3以上版本编译openssh时,如果glibc版本较低就会出现上面连接里提到的函数多次定义错误
那些函数是在glibc头文件里定义的
升级glibc到2.7或者直接把头文件里的extern __inline改成__extern_inline可以解决,当然后者只是一个workaround
下面是glibc相关补丁的发展历史
http://gcc.gnu.org/ml/gcc-patches/2006-11/msg00320.html
http://sourceware.org/ml/libc-hacker/2006-11/msg00001.html
http://sources.redhat.com/ml/libc-hacker/2007-03/msg00026.ht

Ubuntu18.04编译安装gcc-4.9.3 主要过程参见:Ubuntu18.04编译安装gcc6.3,这里只说编译过程中此博文没有遇到的问题。 阅读详情

相关推荐

同花顺自动化交易避坑指南:pywinauto实战中验证码识别与界面弹窗处理

本文深入探讨同花顺自动化交易中的关键稳定性问题,重点解决验证码识别与弹窗处理两大难题。通过优化Tesseract OCR、整合打码平台API以及设计pywinauto弹窗监控体系,提供了一套完整的自动化交易解决方案,帮助交易者有效规避资金账户和持仓信息操作中的常见陷阱。

weixin_33734785的博客 486

c/c++的关键字 inline 介绍

c/c++的关键字 inline 介绍

世界那么大,我想去看看~【随心更新,看世界去了😄】 681

C# 读取图片和扫描PDF中的文本

本博客将探讨如何使用C#和OCR库实现从图片和扫描的 PDF 中提取文本。Spire.OCR for .NET 是一个OCR文字识别库,专为在 .NET 应用程序中识别图片的文本而设计。首先,使用 Spire.PDF 将扫描的 PDF 转换为图片,然后利用 Spire.OCR 从这些图片中提取文本。由于该OCR库并不支持直接处理PDF,因此要从扫描的 PDF 中提取文本,我们首先需要将 PDF 文档转换为图片。转换完成后,再利用 Spire.OCR 从生成的图片中提取文本。方法来识别图片中的文本。

nuclear2011的博客 5401

EWSTM8系列教程06_工程节点选项配置(一)

IAR最新全套教程: 1.EWSTM8系列教程01_IAR介绍、下载、安装和注册 2.EWSTM8系列教程02_新建基础软件工程 3.EWSTM8系列教程03_主窗口、工具栏的概述 4.EWSTM8系列教程04_菜单概述(一) 5.EWSTM8系列教程05_菜单概述(二) 6.EWSTM8系列教程06_工程节点选项配置(一) 7.EWSTM8系列教程07_工程节点选项配置(二) 8...

strongerHuang 3541

Synopsys PCIe IP Loopback功能深度解析与应用实践

本文深入解析了Synopsys PCIe IP的Loopback功能,包括本地数字环回和远程环回两种模式的应用实践。通过详细的寄存器配置步骤和实战案例,帮助开发者快速掌握PCIe芯片验证与调试技术,提升系统开发效率。特别适合PCIe协议相关的硬件工程师和验证工程师参考。

weixin_29198045的博客 530

OsgEarth实战:飞机模型动态轨迹与雷达扫描效果实现详解

本文详细介绍了如何使用OsgEarth实现飞机模型动态轨迹与雷达扫描效果。通过实战案例,讲解了模型加载、路径规划、动态轨迹绘制、飞行姿态计算以及雷达扫描效果的实现方法,并提供了性能优化技巧,帮助开发者高效完成三维可视化项目开发。

weixin_29214199的博客 303

c语言(c99)和c++的inline

这几天写代码,gcc下inline的函数报错函数未定义 //fo.h #ifnedf _FO_H_ #define _FO_H_ inline int get(){ return 4; } #endif //main.c #include "fo.h" int main(){ int a=get(); return 0; } 代码大概就是这个意思,然后gcc编译报错是get函数未定...

Fawkess的博客 599

结构光三维重建2——多频外差解包裹

本文深入解析了结构光三维重建中的多频外差解包裹技术。针对四步相移法产生的相位包裹问题,该方法通过投影多组不同频率的条纹光,利用外差原理逐级解算,最终获得精确、连续的绝对相位值,是实现高精度、稳健三维重建的关键步骤。

weixin_29056101的博客 350

gcc 编译器对 inline 函数的支持

C99版的C语言引入了inline关键字开始支持inline 函数,在这之前传统的C语言(C89)是没有inline 关键字的,也不支持inline 函数。不过大多数 C89 的编译器都将inline作为一种附加特性早早的就加进去了。gcc 也不例外,不过gcc增加inline特性时C99还没定型,gcc中inline 的语意与C99也有些许的区别。这里就主要说说gcc 中的inline 特性。

Ivan 的专栏 1万+

【Mode】Mode expansion monitors

对于宽带仿真,因为被支持的模式可能是波长的函数,因此,推荐在波长范围内增加频率的采样点数量去计算支持的波导模式分布或者光纤模式分布。对于宽带仿真,如果在被计算模式上的频率点的数量与通过 frequency-domain monitors 被测量的频率点的数量不匹配,这种情况是正常的。Mode expansion monitors 对于仿真偏振转换器是十分有用的,比如,在偏振转换器中,当你想要提取从输入模式到输出模式的转换效率,或者提取一个装置的 S 参数。给出了进入到被选择模式中的合透射率,

u011699626的博客 2760

AutosarMCAL开发——基于EB MCU驱动

本文为博主个人学习总结记录,如有不正,欢迎指正。

qq_45583706的博客 920

linux系统中查看gcc内置宏定义的命令方法

linux系统中查看gcc内置宏定义的命令方法 GNU C预定义了一系列的宏,这些宏都是以双下划线开始的 查看内置宏的命令 gcc -dM -E - < /dev/null [qipa250@localhost ~]$ gcc -dM -E - < /dev/null #define __DBL_MIN_EXP__ (-1021) #define __UINT_LEAST16_M...

徊忆羽菲 1917

软考高级架构师笔记-10数学计算题

专栏《软考高级架构设计师》更新了,本章列举了10个场景计算题的解法,温故而知新,大家快来卷一卷

java后端开发的博客,不仅仅是后端开发 1597

根据软件代码“static inline 函数”来判断使用的哪个C语言版本

语法风格上靠近 C89 严格标准**:里面的代码非常古老且保守,比如只使用了 /* … */ 风格的注释,并没有使用 C99 的 // 单行注释;所有的局部变量(如 unsigned int i, j;)都严格声明在代码块的一开始,没有随用随声明(这是典型的 C89 约束)。编译选项上依赖编译器的默认行为(GNU89)

jimy1的博客 511

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

1.c++入门基础【由浅入深-C++】

本文介绍c++入门的相关内容。

插花弄玉的博客 2万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

inline 函数

本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。 从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简

在水一方 7887

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

openwrt报错:[PATCH] cfns: fix mismatch in gnu_inline attributes

https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html

Peppa Pig 756

gcc默认的c语言标准是,当前GCC的默认C -std标准版本是什么(尤其是在Ubuntu上)?

问题描述当我要求查看cc的当前版本时,我得到了。$ cc --versioncc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2Copyright (C) 2012 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NO...

weixin_29434351的博客 2133

GCC几个选项学习

http://www.lingcc.com/2011/06/27/11679/ 最近研究了一把GCC的选项,比较有意思,选些出来,学习学习。编译器作为程序员的重要工具,GCC作为编译器中应用最广泛的,无不处处体现出贴心的设计和功能支持。 Table of Contents 1 -dumpmachine 2 -xc 3 -dM 4 -print-fil...

weixin_30270561的博客 409

gcc命令使用记录

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33850015的博客 283

c语言-命令行选项_EWSTM8系列教程06_工程节点选项配置(一)

说明:本文原创作者『strongerHuang』首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop该教程基于EWSTM8,大部分内容也适用于IAR其它产品(如:EWARM,EW430等)一、写在前面Options for node即节点选项,而node节点位于Project工程的下一级。本文讲述的工程节点选项配置,即菜单Project -> Option...

weixin_33756596的博客 911

gcc4.7.4降级编译

背景: 为了学习嵌入式,最近除了下载了 arm-linux-gcc,还需要编译 gdbserver,但是机子上的 gcc 无法编译,于是只好按 mooc 里的使用旧版本的 gcc 进行编译。 设备及软件信息: VMware Workstation 15 Pro Ubuntu 18.04 gcc-7.5.0 目的: 编译安装 gcc-4.7.4 详细过程: 1. ...

lzlghvbn的博客 1412

C99/GNU99对inline关键字的处理不同于C89

C99 inline semantics are often misunderstood. The inline specifier serves two purposes: First, as a compiler hint in case of static inline and extern inline declarations. Semantics remain unchange

Coding Husky 1861

检测 gcc 是否支持 C99 标准的方法

一般来说 gcc 3.0 以上都是支持 C99 的但是编译的时候得加上 -std=c99检测 gcc 是否支持 C99 方法,新建 c99.c 文件,内容如下#include <stdio.h>int main(void) { #ifdef __STDC__ printf("%s\n", "stardard C"); #endif #ifdef __STDC_VERSION__

Right! I'm Max Sky. 1万+

C++的inline

在C语言中,宏函数经常被用来优化代码以降低函数调用的开销;而在C++中,通常更建议使用inline关键字而不是宏函数来实现相同的作用。 什么是inline function inline function中文翻译叫内联函数,即使用inline关键字来告诉编译器可以在代码中展开函数实现,编译器会在编译期使用函数定义来替换函数的调用。 inl...

weixin_33875564的博客 188
上一篇: debian language support
下一篇: 用 C99 进行开放源代码的开发 [zz]
鹅鹅
博客等级 码龄19年 70粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值