makefile 从入门到精通 为什么标准头文件用<>別人的头文件用“”这样区分有什么好处呢?

[更新]
·
·
分类:互联网
3493 阅读

makefile 从入门到精通

makefile 从入门到精通 为什么标准头文件用<>別人的头文件用“”这样区分有什么好处呢?

为什么标准头文件用別人的头文件用“”这样区分有什么好处呢?

为什么标准头文件用<>別人的头文件用“”这样区分有什么好处呢?

在C语言程序中,头文件被广泛使用。一般来说,每个C/C程序通常由头文件和定义文件组成。头文件作为包含功能函数和数据接口声明的载体文件,主要用来保存程序的声明,而定义文件用来保存程序的实现。。c是你写的程序文件,我们称之为 "源文件 ",还有带后缀的那个。h称为头文件。

头文件的主要作用是重用多个代码文件的全局变量(函数),防止定义。它给出了每个被调用函数的描述,不需要包含程序本身的逻辑实现代码,只起到描述的作用。用户程序只需要根据头文件中的接口声明调用相关的函数或变量,链接器就会从库中寻找对应的实际定义代码。

头文件是一个扩展名为的文件。h,包含C函数声明和宏定义,被多个源文件引用和共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。

要在程序中使用头文件,需要使用c预处理指令#include来引用它。我们经常使用的头文件是stdio.h,它是编译器自带的头文件。

引用头文件相当于复制头文件的内容,但是我们不会直接在源文件中复制头文件的内容,因为这样容易出错,尤其是当程序由多个源文件组成的时候。

在C或C程序的一个简单练习中,建议把所有的常量、宏、系统全局变量、函数原型都写在头文件中,需要的时候随时引用这些头文件。

引用头文件的语法

使用预处理指令#include引用用户和系统头文件。它有以下两种形式:

#包含ltfilegt

此表单用于引用系统头文件。它在系统目录的标准列表中搜索名为file的文件。编译源代码时,可以用-I选项将目录放在列表的前面。

#包含文件

此表单用于引用用户头文件。它在包含当前文件的目录中搜索名为file的文件。编译源代码时,可以用-I选项将目录放在列表的前面。

编译器将使用一些目录来存储公共头文件。如果使用ltgt,它将只在这些目录中查找头文件。如果使用它,它将首先在当前目录中查找。如果找不到,它将在这些目录中查找。不可能搜索所有目录,效率太低。一般来说,应该使用自定义头文件,因为这些文件放在项目目录中(即编译器 s当前目录),而不是在公共头文件目录中。如果你使用ltgt,你应该能找到它们。头文件不可用。至于系统提供的头文件,比如库函数的头文件,如果ltgt不安全的话,肯定可以找到所有的头文件,包括系统库函数的头文件和自己定义的头文件。

引用头文件的操作

#include指令指示C预处理器浏览指定的文件作为输入。预处理器的输出包括生成的输出、被引用文件生成的输出和#include指令后的文本输出。例如,如果您有一个头文件add.h,如下所示:

#ifndef __ADD_H__//定义头文件

#define __ADD_H__

int funAdd(int x,int y)//函数的声明

#endif

add.cpp文件中函数的实现如下:

#包含ltstdio.hgt

#include add.h

int funAdd(int x,int y)//函数的实现

{

返回x y

}

主程序main.cpp包含# include "add.h "文件。

#包含ltstdio.hgt

#include add.h//这相当于使用了add.h头文件中的函数,并为main.cpp函数提供了一个接口。

int main(void)

{

int i funAdd(3,4)

printf(%d

QT程序怎么移植到开发板并运行?

所需条件:

1.上位机编译的可执行文件,以hello为例,在虚拟机的Ubuntu中,写完代码后,定位当前目录,执行命令$qmake-project//生成工程文件。pro $qmake//生成makefile $make//生成可执行文件。你好,注意这些命令是在arm版本的qt环境下编译的!执行qmake-v看看是不是arm版本,是不是在用arm库!执行filehello看看hello是不是arm下运行的程序!

2.移植了QT库的开发板刚开始学,只需要移植几个基础库!触摸屏,鼠标,键盘后面再说!它们是:和字体下的字体。为了防止出错,我移植了他们所有的相关链接文件so.4,so.4.7,so.4.7.2!移植方法可以用nfs!u盘!我用nfs太慢了,很不方便。我只是简单的用u盘复制了一下!因为这些库小的不到1M,大的不到13M,所以优盘还是很快的!更让我困扰的是虚拟机没有。;不支持将链接文件拖到xp环境中。!我只需要在虚拟机里发邮件到我的邮箱,然后在xp环境下下载这些东西,再通过u盘复制就可以了!曲折。。。我的虚拟机u盘不识别!1)移植到哪里?从你的虚拟机编译安装arm版QT库,复制!接下来2)把移植放在哪里过去?It s最好和你的arm版QT在虚拟机中所在的目录一样,操作方便!看看我在开发板下的新目录:home/feng Chao/qtenv/arm/lib home/feng Chao/qtenv/arm/bin home/feng Chao/qtenv/arm/lib/fonts。把那些放好。所以文件用lib,字体用字体!

3.最重要的一步是设置环境变量!在开发板根目录下执行:$vi/etc/profile然后输入exportqtdir/home/feng Chao/qt: $ path: $ LD _ library _ path保存并退出!好吧!Vi用法:打开文件后,输入I进入编辑模式,然后按ESC退出编辑模式,进入命令模式。输入:键入命令wq保存并退出,键入Q退出。

4.然后将编译好的可执行h:cannotfindfontdirectory/home/feng Chao/qtenv/arm/lib/fonts-isqtinstalledCorrectly?这是你没有 不要安装字体。仔细检查,改正!2)也是因为你没有 t移植了库或链接到它的文件,或者环境变量是错误的!