Linux 添加gcc/g++的搜索路径(环境变量)

1.     背景

自学代码,添加了很多公共的头文件,如:将基本类型通过define定义为更加简便的类型,如:

#define UINT unsigned int

后续申明unsigned int类型时就可以直接用UINT,简洁明了。但是,本人定义的公共头文件不在 gcc 的默认搜索路径下,每次包含此头文件需要具体指定其路径,如:

#include"../../../PUBLIC/include/basetype.h"

甚是麻烦。因为有此需求:修改gcc/g++的搜索路径。

2.     #include搜索路径

c/c++代码包含头文件的方式有两种:

#include <AAA.h>
#include “BBB.h”

1)    用双引号“”包含的搜索顺序

1.        先搜索当前目录;

2.        再在编译器设置的include路径内搜索,如:gcc –I 指定的目录;

3.        再在系统的INCLUDE环境变量内搜索,如C_INCLUDE_PATH / CPLUS_INCLUDE_PATH环境变量;

4.        最后搜索gcc的内定目录;

2)    用尖括号<>包含的搜索顺序

1.        在编译器设置的include路径内搜索,如:gcc –I 指定的目录;

2.        在系统的INCLUDE环境变量内搜索,C_INCLUDE_PATH / CPLUS_INCLUDE_PATH;

3.        最后搜索gcc的内定目录。

3.     修改搜索路径

1)    全局永久修改—对所有用户有效

按照第二节的分析,我们可以修改全局环境变量(C_INCLUDE_PATH / CPLUS_INCLUDE_PATH)去添加自定义的头文件路径,方法是修改/etc/profile配置文件,在文件末尾添加自己的路径,如:

export C_INCLUDE_PATH=/home/zhaogang/code_my/PUBLIC:$C_INCLUDE_PATH

export CPLUS_INCLUDE_PATH=/home/zhaogang/code_my/PUBLIC:$CPLUS_INCLUDE_PATH

注意事项:

1.      修改后的文件不会立即生效,可以通过如下命令使修改生效:

source /etc/profile

2.      1中的方法对已经打开的shell依然不生效;

2)    指定用户永久修改—对指定用户有效

默认情况下,Linux系统在每个用户的工作目录下自动创建了.bashrc文件,用于保存此用户的一些个性化设置,如命令别名、路径等。因而,我们可以修改此文件,添加自己的头文件包含路径,如:

export C_INCLUDE_PATH=/home/zhaogang/my_self/PUBLIC:$C_INCLUDE_PATH

注意事项:

1.      修改后的文件不会立即生效,可以通过如下命令使修改生效:

source ~/.bashrc

3)    临时修改—只对当前shell有效

直接在当前shell环境修改环境变量,如下,添加/home/test路径

zhaogang@zglinux ~ $ exportC_INCLUDE_PATH=/home/test:$C_INCLUDE_PATH
zhaogang@zglinux ~ $ echo $C_INCLUDE_PATH
/home/test:/home/zhaogang/code_my/PUBLIC:

4.     测试

1.      博主采用修改/etc/profile的方式全局修改了GCC、G++的搜索路径,通过source使其生效后,echo查看环境变量内容,如下:

zhaogang@zglinux~ $ echo $C_INCLUDE_PATH

/home/zhaogang/code_my/PUBLIC:

2.      然后将自己的公共头文件组织如下:

/home/zhaogang/code_my/PUBLIC

                                                            |----include

                                                                              |----basetype.h

                                                                              |----XXXX.h

之所以在环境变量指定的路径:/home/zhaogang/code_my/PUBLIC下再建一个目录include,是为了后续包含相关头文件时,需要指定其相对环境变量的路径,如:

#include<include/basetype.h>

这样就能方便的识别与

#include<XXX.h>

区分,前者表示为自定义的头文件。

3.      测试并编译代码

测试代码:

#include <stdio.h>
#include <include/basetype.h>   /* 自定义头文件 */
INT main()
{
    INT iTest = 0;
    printf("iTest = %d ,UnixPath : %s \n", iTest, UNIXDOMAIN_PATH);
    return 0;
}

编译运行:


  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值