gcc学习笔记

【gcc】RtpTransportControllerSend学习笔记 3:gcc 算法 gcc 阅读详情



1)“eval”函数执行时会对它的参数进行两次展开。第一次展开过程发是由函数本身完成的,第二次是函数展开后的结果被作为Makefile内容时由make解析时展开的。此函数的功能主要是:根据其参数的关系、结构,对它们进行替换展开。当函数的展开结果中存在引用(格式为:$(x))时,那么在函数的参数中应该使用“$$”来代替“$”

OBJ=a.o b.o c.o d.o main.o

define MA
main:$(OBJ)
 gcc  -g -o main $$(OBJ)
endef 

$(eval $(call MA) )

会产生这样的编译过程:

cc -c -o a.o a.c

cc -c -o b.o b.c

cc -c -o c.o c.c

g++ -c -o d.o d.cpp

cc -c -o main.o main.c

gcc -g -o main a.o b.o c.o d.o main.o

请注意到$$(OBJ) ,因为make要把这个作为makefile的一行,要让这个地方出现$,就要用两个$,因为两个$,make才把把作为$字符。


2)$(addprefix fixstring,string1 string2 ...)  

fixstring表示任意要添加的固定前缀,在逗号的后面可以是一个或多个要添加前缀的子字符串,多个子字符串之间用空格隔开

3)  $(foreach <var>,<list>,<text>)

把参数<list>;中的单词逐一取出放到参数<var>;所指定的变量中,然后再执行< text>;所包含的表达式。每一次<text>;会返回一个字符串,循环过程中,<text>;的所返回的每个字符串会以空格分隔,最后当整个循环结束时,<text>;所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。

所以,<var>;最好是一个变量名,<list>;可以是一个表达式,而<text>;中一般会使用<var>;这个参数来依次枚举<list>;中的单词。举个例子:
    names := a b c d
    files := $(foreach n,$(names),$(n).o)

上面的例子中,$(name)中的单词会被挨个取出,并存到变量“n”中,“$(n).o”每次根据“$(n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,$(files)的值是“a.o b.o c.o d.o”。

注意,foreach中的<var>;参数是一个临时的局部变量,foreach函数执行完后,参数<var>;的变量将不在作用,其作用域只在foreach函数当中。

4)$(call VARIABLE,PARAM,PARAM,...) 

http://blog.youkuaiyun.com/zhoudengqing/article/details/41778445
 5) +=, ?=, :=, =区别

6)$$作用


ADS入门学习笔记——低噪声放大器(2) 1、输入匹配网络; 2、输出匹配网络; 阅读详情

相关推荐

【OpenCV】手眼标定实战:从原理到calibrateHandEye的完整实现

本文详细解析了机器人视觉中的手眼标定原理与实战,重点介绍了如何使用OpenCV的calibrateHandEye函数实现从数据采集到结果验证的完整流程。文章深入剖析了AX=XB核心方程,区分了眼在手上与眼在手外两种配置,并提供了详细的代码示例与避坑指南,帮助开发者精准建立相机与机械臂末端的坐标转换关系,是机器人精准抓取的关键技术。

weixin_29046611的博客 509

GCC 学习笔记

1、GCC的编译和安装2、预处理    #define 可以支持不定数量的参数。    例子如下:    #define err(...) fprintf(stderr,__VA_ARGS__)    err("%s,%d/r/n","The error code:",48);    扩展为:    fprintf(stderr,"%s,%d/r/n","The error code:",48);

应公子的专栏 1万+

为什么你的Nginx配置SM2国密SSL证书失败?这些坑我都帮你踩过了

本文针对Nginx配置SM2国密SSL证书的常见失败原因,提供了详细的排查与解决方案。核心在于使用支持国密算法的Nginx版本(如集成Tongsuo库),正确处理从阿里云等平台获取的证书格式,并正确配置ssl_ciphers等关键参数。文章还解释了浏览器兼容性差异及双证书部署等进阶场景,帮助运维和开发人员高效完成国密合规改造。

weixin_29228203的博客 387

Makefile中foreach函数的应用理解

Makefile中foreach函数的举例说明。

无人机开发(开源Ardupilot) 1万+

EndNote20保姆级安装教程:从下载到汉化一步到位(附闪退解决方案)

本文提供EndNote20的详细安装与汉化教程,涵盖系统准备、分步安装、路径优化及闪退解决方案。针对科研人员的需求,特别优化了中文环境下的使用体验,确保文献管理工具的高效稳定运行。

weixin_30415113的博客 340

从无序到结构化:HAC框架如何用哈希网格重构3D高斯压缩范式 | ECCV2024技术解读

本文深入解读了ECCV 2024提出的HAC框架,它通过引入二值哈希网格为无序的3D高斯锚点建立空间结构,并利用上下文模型进行自适应量化,从而实现了对3D Gaussian Splatting模型的高效压缩。该方法将压缩范式从单纯削减数据转向智能理解数据关系,在保持高质量渲染的同时,显著提升了压缩率,为移动端部署和实时应用提供了新方案。

yolo5detector的博客 459

Linux编程环境

Linux编程环境 【学习笔记】 vi编辑器 vi 文件名 #进入文件编辑模式 一般模式: yy #复制当前行 y数字y #复制多少行内容 p #箭头移动到目的行粘贴 u #撤销上一步 dd #删除当前行 d数字d #删除光标后多少行 x #删除一个字母(相当于delete) X #删除一个字母(相当于backspace)

m0_46205725的博客 206

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

【Matlab光伏功率预测】基于GRU门控循环单元的光伏功率时间序列预测(附MATLAB代码)

k8291121的博客 1100

gcc编译以及Makefile与GDB调试_gcc编译器的调试

虽然优化选项可以加速代码的运行速度,但对于调试而言将是一个很大的挑战,因为代码在经过优化之后,原先在源程序中声明和使用的变量很可能不再使用,控制流也可能会突然跳转到意外的地方, 循环语句也有可能因为循环展开而变得到处都有,所有这些对调试来讲都是不好的。如果我们直接将编译完成的.o文件直接加入到了库的末尾,却并没有更新库的有效符号表。//不要忘记-L 后面的那个. (即在库文件的搜索路径中添加当前路径 -ladd 表示链接库文件 libadd.a/.so -I./表示包含在当前目录中的头文件)

2401_89285701的博客 1043

(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常

注意!!! 本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分内容会借用上述文章 文章目录一:中断和异常的基本概念(1)中断和异常的定义 一:中断和异常的基本概念 在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。 操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能

快乐江湖的博客 3531

输入文件(Example-1.inp)参数解读与获取方法

弹性参数:优先使用默认值(泊松比 0.25、杨氏模量 8×10⁵ bars),或参考区域地质 / 地球物理研究。断层参数:从地震矩反演、GPS 位移反演、地质图 / 震源机制获取(核心参数,需确保准确性)。网格 / 图形参数:根据研究区范围和输出需求调整(步长 / 放大系数等)。

2301_79258000的博客 81

Makefile 之 foreach

Makefile 之 foreach

xiaozhi 462

Altium Designer(AD24/25)导入DXF或DWG结构文件的方法

DXF(Drawing Exchange Format)和DWG(Drawing)是两种常见的CAD(计算机辅助设计)文件格式,常用于结构和硬件之间的沟通。本文介绍Altium Designer(AD24/25)导入DXF或DWG结构文件的方法。

fydar的博客 1447

gcc 内嵌汇编的学习笔记 II

\r\n gcc 内嵌汇编的学习笔记 II --一个简单的条件判断 作者:ShellEx. ShellEx.cn &amp;&amp; http://shellex.cublog.cn/ 版权所有 真不……...

钢窟. 287

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

GCC学习笔记(一)

前言 GCC是GNU编译器的集合,可以编译 C, C++, Objective-C, Fortran, Ada等语言。 GCC工作的流程 示例 HelloWorld.c文件内容: #include <stdio.h> void main(void) { printf("Hello World!\n"); } 使用指令 gcc HelloWorld.c -o HelloWorld 最终生成可执行文件HelloWorld。 在直接使用gcc编译文件时,删除了很多临时文件,不利于理解

qq_34163621的博客 376

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Centos7升级gcc学习笔记

转载文章 Centos7升级gcc学习笔记

ddr77的专栏 1094

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

gcc编译器学习笔记

gcc:一个跨平台的大型编译器,将高级语言编译成机器码。

2402_83192253的博客 398

gcc 内嵌汇编的学习笔记 IV

             gcc 内嵌汇编的学习笔记 IV                             --函数调用  作者:ShellEx.   ShellEx.cn && blog.youkuaiyun.com/shellex 版权所有 没有经验,还是通过反汇编出来的代码来学习。先写一个简单的函数调用的C++ code Sample:#include int Add(int a, int

钢窟. 3877

GCC学习笔记

目录一、简介1.1 什么是GCC1.2 GCC、gcc、g++三者关系二、源代码处理流程2.1 预编译2.1.1 处理规则2.1.2 操作示例2.2 编译2.2.1 处理说明2.2.2 操作示例2.3 汇编2.3.1 操作示例2.4 链接2.4.1 链接其他目录中的库2.4.2 静态链接库的创建和使用1. 创建2. 使用2.4.3 动态链接库的创建和使用1. 创建2. 使用 一、简介 1.1 什么是GCC GCC(GNU Compiler Collection)是由GNU开发的编程语言译器 GNU编译器套

GrayD1419的博客 316

gcc 学习笔记

gcc编译程序的过程预处理(Pre-Processing)编译(Compiling)汇编(Assembling)链接(Linking)选项名作用-o产生目标(.i、.s、.o、可执行文件等)-c通知gcc取消链接步骤,即编译源码并在最后生成目标文件-E只运行C预编译器-S告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为.s-Wall使gcc对源文件的代码有问题的地方发出警告-Idi...

linux_Allen的博客 429

C学习笔记-gcc

GNU CC(通常称为GCC)是GNU项目的编译器,它能够编译C、C++语言编写的程序 gcc的优点 使用gcc,程序员可以控制生成二进制执行文件中调试代码的数量和类型。 和其他编译器一样,gcc也可以优化执行代码。 gcc是个交叉平台编译器,所以能够在当前CPU平台上为不同操作系统开发软件。 gcc对C和C++进行了一些扩展,有助于...

weixin_30591551的博客 211

GCC学习笔记1

1   GCC支持的程序设计语言 GCC目前支持的语言有C, C++,Objective-C, Objective-C++, Java, Fortran, Ada, 和 Go。 2  GCC对语言标准的支持 每种可被GCC编译的语言都有一个标准,GCC试图遵循一种或者更多不同版本的标准,可能有一些特殊情况,有时也会有一些扩展。 2.1 C语言     GCC支持三种版本的C标准,不过对最

xubobo的专栏 6085
上一篇: tcpdump学习笔记
下一篇: 静态库和动态库学习笔记
Buger(8哥)
博客等级 码龄15年 17粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值