如何获得gcc/g++编译宏定义和头文件搜索目录的方法说明

GCC/G++编译器和VS IDE中的一些预定义宏和用户自定义宏 预定义宏,  编译器通常会根据平台和编译选项的不同,为被编译的程序提供不同的预定义的宏, 例如WIN32 WIN64 LINUX, 例如DEBUG, RELEASE. 1. 在使用gcc/g++编译器时,可以通过以下命令打印出编译器预编译的宏。 gcc -dM -E - 2. 在VS IDE中,可以参看http://msdn.microsoft.com/zh-cn/libr 阅读详情
/* co-gcc.lnt: This is the seed file for configuring Lint for use with
GCC versions 2.95.3 and later.

Like all compiler options files this file is intended to be used
as follows:

lint co-gcc.lnt source-files-to-be-linted

Some of the information that co-gcc.lnt requires needs to be
furnished with the help of the gcc system itself.

If any of these directions are unclear, you may gain a better insight
into what is happening by checking the file gcc-readme.txt

For C, first create an empty file named empty.c and then
run the command (options are case sensitive):

gcc -E -dM empty.c >lint_cmac.h

This will capture macro definitions
in a file that will be included
automatically at the beginning of each module by use of the -header
option within co-gcc.lnt. The macros may change as you change
compiler options so that ultimately you may want to incorporate
this step into a make facility.

Next we need to determine the search directories. If you run

gcc -c -v empty.c

you will see among other things this coveted list. For example you
might get:

...
#include "..." search starts here
#include <...> search starts here
/usr/local/include
/usr/lib/gcc/i686-apple-darwin8/4.0.1/include
/usr/include
/System/Library/Frameworks
/Library/Frameworks
End of search list.
...

For each directory shown (there are five in the list above) prefix
the directory name by a "--i" and place it in a file whose name is,
say, include.lnt. You may then begin linting programs by using the
command

lint co-gcc.lnt include.lnt source-files

Note: it is conventional to place both .lnt files into a single .lnt
file called std.lnt

For C++, run the command (options are again case sensitive):

g++ -E -dM empty.c >lint_cppmac.h

This will capture C++ macro definitions
in a file that will be
included automatically at the beginning of each C++ module
at the request of co-gcc.lnt.

Next we need to determine C++ search directories. If you run

g++ -c -v empty.c

As in the case of C you should prepend a --i onto each directory
displayed and place these options into a file such as include.lnt.
Again, there is nothing sacred about the name and if you intend to
do mixed C and C++ programming it will be necessary for you to use
a differently named file. The rest proceeds as before.

Note, some options in this file (such as the size options, i.e. -sp4
indicating that pointers are four bytes wide) may need to be changed.
See "System Dependent Options" below.
*/
如何让GCC生成编译过程的中间文件(.i/.s/.o)?gcc 1.c和g++ 1.c有什么区别?gcc 1.c和g++ 1.c预处理有什么区别? 可以用--save-temps选项指示GCC生成编译过程中的中间文件。 阅读详情

相关推荐

linux下的C C++编译环境构建(gcc make cmake 头文件目录 库文件目录)_linux g++编译目录

但是/usr/include其中也包含内核头文件所需的linux/、asm/文件夹,但是这两个文件夹主要是用来做一些兼容性用的,真正用到内核头文件还是要用/usr/src/linux/include。C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的环境变量是指明头文件的搜索路径,此两个环境变量指明的头文件会在-I指定路径之后,系统默认路径之前进行搜索。

2401_83740129的博客 1374

g++和Makefile传递宏定义

g++和Makefile如何传递宏定义参数。

fangfanglovezhou的博客 814

UNITY3D万人同屏,Dots万人同屏解决方案_类萌宠宠之战

UNITY3D弹幕游戏开发,万人同屏解决方案

6468

C/C++使用GCC编译项目时添加宏定义

C/C++使用GCC编译项目时添加宏定义

qq_46070108的博客 2112

基于迁移学习的花卉识别系统

本研究采用了预训练的经典深度学习模型,包括ResNet、AlexNet和VGG,通过微调的方式在Oxford-102数据集和一个自制花卉数据集上进行训练,并对图像进行了多种数据增强操作,以提高模型的泛化能力,致力于实现花卉的高效分类。

m0_71146337的博客 2374

用STM32H7的FMC+AD7606搭建多通道数据采集系统:两种工作模式(查询与FIFO中断)的代码详解与性能对比

本文详细解析了基于STM32H7微控制器和AD7606 ADC芯片的多通道数据采集系统设计,重点对比了查询模式与FIFO中断模式的实现方法与性能差异。通过FMC总线实现高速并行数据采集,系统支持16bit同步采样,最高可达200Ksps/通道。文章提供了完整的代码实现和优化策略,帮助工程师在工业监测等实时性要求高的场景中构建可靠的数据采集方案。

weixin_30599769的博客 483

PCLint 帮助中关于如何获得gcc/g++编译宏定义和头文件搜索目录的方法说明

/* co-gcc.lnt: This is the seed file for configuring Lint for use with GCC versions 2.95.3 and later. Like all compiler options files this file is intended to be used as follows: lint...

weixin_34292924的博客 516

MATLAB MinGW-w64 C/C++ 编译器 手动安装配置

根据Matlab版本与MinGW版本对应关系,手动安装、配置并测试MinGW

zjh2883的博客 7340

查看gcc/g++ 编译器的预定义宏

gcc -dM -E - &lt; /dev/null

Poetry_And_Distance的博客 1402

Spring WebFlux响应式编程实战(三):优雅处理异常与高效调试技巧

本文深入探讨了Spring WebFlux响应式编程中的异常处理与调试技巧。文章通过电商订单流处理场景,详细解析了Reactor核心操作符onErrorReturn、onErrorResume和onErrorMap的实战应用,并介绍了如何构建@ControllerAdvice和WebExceptionHandler全局异常处理防线。同时,提供了使用.log()操作符、Hooks.onOperatorDebug()及BlockHound进行高效调试的方法,旨在帮助开发者构建健壮、可维护的响应式应用。

weixin_29252171的博客 65

立创开源:基于AD831/ADF4351的250-500MHz宽频调幅信号处理实验电路设计与实现

本文详细解析了基于AD831混频器和ADF4351本振源的250-500MHz宽频调幅信号处理实验电路的设计与实现。文章从项目需求出发,系统讲解了超外差接收架构、核心模块(包括射频前端、混频器、本振源、AGC环路及解调电路)的选型与原理,并提供了实战调试波形与性能验证,为射频电路学习者提供了从理论到实践的完整指南。

weixin_35706255的博客 225

【Linux】超好用的编译工具 —— gcc/g++

记忆gcc选项的小技巧: 预处理、编译、汇编对应的gcc选项分别是 “-E”、“-S”、“-c”,我们把这几个字母连起来也就是键盘的最左上角那个键【Esc】,我们只需要记住E和S是大写的,c是小写的即可。 而预处理、编译、汇编后形成的文件后缀连起来就是【iso】(iso也就是镜像文件的后缀)。 所以最后我们只需要记住选项【Esc】对应文件后缀【iso】即可。

这是一个非常有意思的博主 2万+

2020.12.25丨CRISPResso2安装教程

一个月前接到一个项目,说是做关于CRISPR的编辑效率个性化分析。本来这个分析以前是没有做过的,不过客户发了参考文献。里面流程和命令行都非常清楚,再加上读研期间CRISPR的项目“中道崩殂”,让我对CRiSPR的技术有些执念,便下决心接下来试试。 整个测序分析使用的工具就是CRISPResso,,下面介绍最快捷的安装方式。 首先,CRISPResso只支持python2.X,不支持3.X你需要下载Anaconda或者miniconda,以Miniconda为例: 安装环境: Linux 64-bi

4631

Linux中gcc/g++的安装和使用

1、GCC、gcc、g++的区别: (1)三者比较 GCC: GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。 gcc是GCC中的GUN C Compiler(C 编译器) g++是GCC中的GUN C++ Compiler(C++编译器) ...

蓬莱道人的博客 2万+

树根互联Java开发面试题及参考答案

说一下 Java 集合类。 Java 集合类是用于存储和操作一组对象的容器。它提供了多种数据结构,方便程序员对数据进行高效的管理和处理。 Java 集合框架主要包括两大接口:Collection 和 Map。 Collection 接口是一组对象的集合,它有三个主要的子接口:List、Set 和 Queue。 List 接口代表有序的集合,可以包含重复的元素。例如 ArrayList,它是基于数组实现的动态数组。它的优点是随机访问效率高,通过索引访问元素的时间复杂度为 O (1)。当

大模型大数据攻城狮的专栏 853

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

在linux下使用gcc/g++编译.h .cpp文件

1.gcc编译C源码的四个步骤: 预处理->编译->汇编->链接(test.c test.h => test.i => test.s => test.o => test) 1)预处理 gcc -E test.c -o test.i 2)编译 gcc -S test.i -o test.s 3)汇编 gcc -c test.s -o test.o 4)链接 gcc test.o -o test 执行可执行文件test ./t...

不知小姐 1万+

android 蓝牙通讯demo

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

gcc/g++ 编译选项详解

它打开 -ffast-math、-fallow-store-data-races 和176 Using the GNU Compiler Collection (GCC) Fortran 特定的 -fstack-arrays,除非指定 -fmax-stack-var-size,和-fno-protect-parens。-fold-unroll-loops 意味着 -fstrength-reduce 和 -frerun-cse-after-loop。这是使用旧的循环展开器完成的,其循环识别基于前端的注释。

RandyOliver's House 5628

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux编译器-gcc/g++

Linux编译器gcc/g++

Giggins GaoBlog 1369

《Linux从练气到飞升》No.05 Linux编译器gcc/g++的使用及编译过程

本篇我们将讲述gcc/g++的使用以及它是如何完成一次编译的,因为指令比较简单,而且后文讲述编译过程的篇幅较长,我就先讲gcc/g++的使用,也方便需要的人查阅,但是编译过程才是更重要的知识

进一步有一步的欢喜 1355

【Linux系统】—— 编译器 gcc/g++ 的使用

gcc/g++

yusjushd的博客 1759

GCC/G++编译器中指定库文件(LIB)、头文件(INCLUDE)

库文件在连接(静态库和共享 库)和运行(仅限共享库的程序,静态库会和可执行编译到一起)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。 设置库文件的搜索路径总的来说有以下几种: L...

赶路人儿 3万+

零基础上手gcc/g++:Linux编译轻松学

首先我们来学习一下gcc、g++二者之间的关系gcc英文全称为:GUN C Compiler,是GCC中的c编译器g++英文全称为:GUN C++ Compiler,是GCC中的c++编译器。gcc和g++ 两者都可以编译c和cpp文件,但存在差异。gcc在编译cpp时语法按照c来编译但默认不能链接到c++的库(gcc默认链接c库,g++默认链接c++库)。g++编译.c和.cpp文件都统一按cpp的语法规则来编译。所以一般编译c用gcc,编译c++用g++。

2301_80774875的博客 2298

C/C++生态工具链——gcc/g++编译器使用指南

详细的gcc/g++使用说明

程序员与背包客_CoderZ 3417

【Linux 05】gcc / g++ 编译器

1. gcc / g++ 的使用。2. gcc / g++ 翻译程序的过程。3. gcc / g++ 常见选项。

shangguanxiu的博客 2666

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

Linux编译器gcc/g++的使用。

大三小白C++进阶之路 3241
上一篇: C++编写Windows服务
下一篇: Android NDK 工具链的使用方法(Standalone Toolchain)
nodeathphoenix
博客等级 码龄16年 97粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值