当前位置:首页 » 编程软件 » linux编译头文件

linux编译头文件

发布时间: 2022-04-26 04:36:27

1. 关于在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"

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

2. linux下,C语言头文件在哪

一、 C标准库头文件,以及Linux的标准库文件的对应头文件,默认放在/usr/include下。 如图:

标识出了最常用的几个头文件。

二、 自定义头文件,或者集成头文件,需要在编译的时候指定。可以在命令行中指定,也可以在makefile中指定。

指定自定义头文件路径方式为:

-IPATH1 -IPATH2...

如当前目录下的inc文件夹,指定为头文件, 那么在编译a.c时,可以命令写作:

gcc a.c -I./inc -o a.out

3. 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”。

4. Objective c中,linux下gcc 编译头文件的命令是什么

预处理对头文件、宏定义等进行处理,生成
.i
的默认文件,命令:gcc
-E
test.c>test.i

5. linux头文件存在编译时却找不到

1、通过find命令查找编译时找不到的头文件。
find / -name x.h (x.h是缺少的头文件,根据实际情况操作)
2、如果能找到, 就在/usr/include目录下建立一个x.h的软连接
ln -s /usr/include /usr/x/y/z/x.h (假设缺少的头文件路径 /usr/x/y/z/,根据实际情况操作)
3、如果不能找到,就说明当前系统缺少此头文件的库,自行网络搜索相应的库安装即可。

6. linux头文件解释:谁能解释,谢谢了。答得好我狂加分。

1. 这是内核源码的头文件,一般人不敢说都熟悉滴。
2. 以linux开头的的头文件,如<linux/file.h>对应源码目录树的include/linux/file.h
3. 以asm开头的头文件,如<asm/file.h>对应源码目录树的arch/***/include/asm/file.h, 其中***对应某个具体的平台。
4. 仔细研读并读懂过linux源码1/10的人,绝对是高手中的高手,不会出现在这里回答问题。
5. 我是菜鸟,源码只看了一点。
6. 劝楼主别浮躁,想学内核驱动,要能静的下来,认真看书。

7. 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中指定的路径。

(7)linux编译头文件扩展阅读:

应用程序代码编译过程:

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

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

example:

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

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

8. 关于在linux下用gcc编译头文件的问题。

我用一个例子来告诉你怎么样在 C++ 里使用C的头文件/函数。

比方说我有一个C的头文件叫 c.h, C的源码文件叫 c.c,内容分别是

c.h:
#ifndef _ASDFD_INCLUDED_
#define _ASDFD_INCLUDED_

#include <stdio.h>

extern int test(int a);

#endif

c.c:
#include "c.h"

int test(int a)
{
printf("A = %d\n", a);
return a*a;
}

现在我想在c++中使用c.c中提供的函数test(),我的c++文件名字叫 a.cpp,那么里面跟C有关的部分就要用 extern "C" {} 大括号括起来,看看我的
a.cpp:
#include <iostream>
using namespace std;

extern "C"
{
#include "c.h"
}

int main()
{
int b = 12;

b = test(b);

cout<<"b = "<<b<<endl;
return 0;
}

看到了吧,#include "c.h" 被 extern "C" {}括起来了。

然后是如何编译,先把C文件编出目标文件(.o)来
gcc -c c.c
你会看到生成了 c.o,其实,有目标文件就够了,如果你一定要做成(静态/动态)库文件,也是可以的,不过我这里就不深入了,做成库和直接用目标文件对解决你的问题没有任何区别。

然后再编译C++文件,也就是我的 a.cpp
g++ -o hello a.cpp c.o
看到了吧,我在编译 a.cpp 的时候把C生成的 c.o也加上了。 然后生成 可执行的 hello, 运行
./hello
就可以看到
A = 12
b = 144

关于创建静态库,假定你有3个C文件, a.c, b.c, c.c 提供了你C++要用到的接口,那么可以把这三个C文件编译出来的目标文件放到一个库文件里供C++使用,方法为

先编译出目标文件
gcc -c a.c b.c c.c

这时候你应该看到有 a.o b.o c.o了

然后创建库文件
ar cr libtest.a a.o b.o c.o
这三个目标文件就放入 libtest.a 这个静态库中了,然后编译C++程序 (你的C++程序应该已经按照我前面说的用 extern "C" 把C的接口都括起来了),假定你的 libtest.a 放在 /home/aaa/lib下

g++ -o my.exe my.cpp -L/home/aaa/lib -ltest

就会生成可执行文件 my.exe了。

9. linux 模块编译显示没有头文件

编写linux内核模块,需要自己编写Makefile,同时在Makefile里面制定自己的内核路径,这样才能处理提示没有头文件错误。

编译命令:

exportPATH=$PATH:#编译工具链路径
exportARCH=#CPU类别(例如arm)
exportCROSS_COMPILE=arm-none-linux-gnueabi-#(编译工具xx-gcc的前缀xx)
make-C#编译好的内核模块运行的Linuxkernel内核源代码目录树M=$`pwd`moles

Linux模块编译例子:

exportPATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin
#forSamsungs5pc100
exportARCH=arm
exportCROSS_COMPILE=arm-none-linux-gnueabi-
make-C/home/wenxy/src/s5pc100/linux-2.6.35.5M=$`pwd`moles

10. 如何在linux shell中同时编译一个源文件和一个头文件,使其生成一个可执行文件

直接用gcc编译.c文件,.c文件中 #include "头文件" 即可。
gcc test.c -o output -Wall
其中,output为输出的可执行文件,-Wall开关用于显示所有警告信息。

热点内容
scratch少儿编程课程 发布:2025-04-16 17:11:44 浏览:625
荣耀x10从哪里设置密码 发布:2025-04-16 17:11:43 浏览:355
java从入门到精通视频 发布:2025-04-16 17:11:43 浏览:70
php微信接口教程 发布:2025-04-16 17:07:30 浏览:295
android实现阴影 发布:2025-04-16 16:50:08 浏览:786
粉笔直播课缓存 发布:2025-04-16 16:31:21 浏览:336
机顶盒都有什么配置 发布:2025-04-16 16:24:37 浏览:201
编写手游反编译都需要学习什么 发布:2025-04-16 16:19:36 浏览:797
proteus编译文件位置 发布:2025-04-16 16:18:44 浏览:354
土压缩的本质 发布:2025-04-16 16:13:21 浏览:581