导航:首页 > 文件类型 > linux编译器头文件配置

linux编译器头文件配置

发布时间:2023-03-16 11:09:12

❶ arm-linux-gcc怎么编译自己写的头文件

linux gcc编译c文件头文件
linux gcc编译c文件头文件,使用GCC编译器编译C语言

凶猪下山
转载
关注
0点赞·1047人阅读
GCC编译C源代码有四个步骤:预处理—->编译—->汇编—->链接。

可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程。

下面将通过对一个程序的编译来演示整个过程。

#include

int main()

{

printf("happy new year!\n");

return 0;

}

1:预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。

预处理 命令:gcc -E hello.c -o hello.i

作用:将hello.c预处理输出hello.i

2:编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言。可用gcc的参数-S来参看。

编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序。汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令。

编译命令:gcc -S hello.i -o hello.s

作用:将预处理输出文件hello.i汇编成hello.s文件

3:汇编:把编译阶段生成的.s 文件转换为二进制目标代码。可用gcc的参数-c来参看。汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式, 并将结果保存在目标文件hello.o中。hello.o文件是一个二进制文件,它的字节编码是机器语言。

汇编 命令:gcc -c hello.s -o hello.o

作用:作用:将汇编输出文件hello.s编译输出hello.o文件

4:链接:把obj文件链接为可执行的文件:链接器(ld)负责.o文件的并入。结果就是hello文件,它是一个课执行的目标文件,可以加载到存储器后由系统调用。

链接命令:gcc hello.o -o hello

一步操作的话是: (-o必须在hello之前 )

$gcc hello.c -o hello

$./hello或者:(会默认生成a.out文件)

$gcc hello.c

$./a.out

❷ 深度linux的arm-linux-gnueabihf-gcc编译参数如何配

一般来说,交叉编译工具是用于在一种架构的主机(例如x86)上,编译另一种主机(例如arm)运行的程序,在这个编译期间,需要用到的头文件/库,往往需要从一个叫目标文件系统(sysroot)的路径开始查找。

sysroot里包含usr,lib,usr/lib usr/include等文件夹结构和必要的头文件和库,你理解为目标机器上的整个文件系统,搬到你这台电脑上,然后作为一个文件夹存在。

交叉编译原则上不能用主机(host)的头文件,

交叉编译一般无法使用主机的库(so)文件

最后结论:你这个问题,如果你是为了另一套机器(比如arm开发板编译),那么需要搞一套目标机的文件系统才能顺利编译。

对了,目标文件系统需要编译了python和dev头文件/库,好多嵌入式设备裁剪的很厉害,都不用python。

❸ Linux下c语言开发怎么添加头文件目录和lib文件目录

通过编译抄选项可以设置的
Linux下一般用gcc,就以gcc的命令为例
要增加头文件目录inc,那么编译选项加上-Iinc
如果有多个 就写多个
比如 -Iinc -I/home/name/include
类似的 增加lib路径用-L
比如 -Llib -Lmy_lib
就是增加当前目录下 lib和my_lib两个文件夹作为库文件目录。

❹ linux下编写c++,include的那些头文件在什么地方

C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径。

1、#include <stdio.h>,直接到系统指定目录去查找头文件。

系统默认路径为:/usr/include,/usr/local/include,/usr/lib/gcc-lib/i386-Linux/2.95.2/include(gcc库文件的路径,各个系统不一致)

2、#include "stidio.h",会先到当前目录查找头文件,如果没找到在到系统指定目录查找。

3、gcc编译时查找头文件,按照以下路径顺序查找:

gcc编译时,可以设置-I选项以指定头文件的搜索路径,如果指定多个路径,则按照顺序依次查找。比如,gcc -I /usr/local/include/node a.c

gcc会查找环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH中指定的路径。

(4)linux编译器头文件配置扩展阅读:

应用程序代码编译过程:

编译器根据头文件提供的库函数接口形式,来编译代码,然后生成目标文件;然后,再使用链接器将这个目标文件与系统库链接;最终生成应用程序。代码包含了自己写的内容,还有系统提供好的现成的库函数,整个结合起来才形成一个完整的程序。

库函数的头文件,在编译的时候被使用,而库函数的代码段(库文件),在链接的时候被使用。

example:

应用程序代码在使用一个系统调用的时候,例如printf()函数,需要指定包含的头文件stdio.h;另外,在链接的时候对应的链接libc.a(笔者电脑文件所在目录:/usr/lib/i386-linux-gnu/libc.a)。

总结一下,编写应用程序,需要使用linux系统提供的库函数。具体实现起来,需要头文件和库文件。头文件是需要我们编写应用程序的时候,在源文件开头添加的;而库文件则需要配置编译环境进行指定搜索目录。

❺ 关于在linux下用gcc编译头文件

首先,确定你的头文件都用宏隔开了,防止了重复定义。例如,在file.h 中的开头就是
#ifndef __FILE__HEAD___
#define __FILE__HEAD___
//头文件中的内容
#endif //__FILE__HEAD___
之后,
file.h中用到了list.h ,所以file.h中#include "list.h"//假设头文件都在同一目录下
list.h中用到了preapre.h 所以list.h中#include "prepare.h"
prepare.h中用到了node.h 所以prepare.h中#include "node.h"

在某些情况下,由于代码组织等的问题,还是会出现编译问题,这个就是代码组织技巧的问题了,要根据具体代码具体判断了。
另外,准确的说头文件只是在编译的第一步,预处理的时候使用了,真正被“编”的应该是源文件,这个是编译原理方面的问题了。

❻ linux下 头文件,该怎么处理

在Linux下面,如果要编译一个C语言头文件,,要使用GNU的gcc编译器,以一个实例内来说明如何使用gcc编译器:
假设有下面容一个非常简单的源程序(hello.c):

1
2
3
4

int main(int argc,char **argv)
{
printf("Hello Linux\n");
}

要编译这个程序,只要在命令行下执行:

1

gcc -o hello hello.c

gcc 编译器就会生成一个hello的可执行文件;执行./hello,就可以看到程序编译后的输出结果“Hello Linux”。

❼ linux设备驱动程序该添加哪些头文件

#include <linux/spinlock_types.h>

#include <linux/blkdev.h>

#include <linux/mole.h>

#include <linux/kernel.h>

#include <linux/fs.h>

#include <linux/genhd.h>

#include <linux/init.h>

以上这些基本上都得用到的头文件 一般编译器会报错,根据报错信息,再添专加相应的属头文件即可。

阅读全文

与linux编译器头文件配置相关的资料

热点内容
滴滴相关app有哪些 浏览:343
筛选单位怎么体现数据 浏览:594
viperfx音效文件位置 浏览:783
iphone5通话背景修改 浏览:1
电脑的网络打印机无法打印机驱动程序 浏览:888
pdf文件删除页码设置 浏览:765
小米手机迅雷下载到哪个文件夹里 浏览:421
苹果手机怎么样截图 浏览:266
linux服务器复制文件 浏览:214
微信商户生成二维码 浏览:455
感动用英语怎么说app 浏览:712
文件名选择编辑器属性 浏览:728
使用原始配置文件 浏览:762
枪线图需要下列哪些数据 浏览:592
哪个网站可以查物品真实评论 浏览:407
win10禁用outlook 浏览:807
精雕编程是怎么回事 浏览:116
如何用编程猫制大鱼和小鱼 浏览:635
qq头像励志唯美图片 浏览:870
mx播放器隐藏文件夹找不到了 浏览:787

友情链接