gcc编译时路径搜索

1. 头文件

1. 搜寻会从-I开始
2. 然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
3. 内定目录

/usr/include 

/usr/local/include

/usr/lib/gcc-lib/i386-linux/2.95.2/include

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3

/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include


2. 库文件

1. gcc会去找-L
2. 环境变量LIBRARY_PATH
3. 再找内定目录 /lib:/usr/lib: /usr/local/lib

3. 动态库文件

1. 在配置文件/etc/ld.so.conf中指定动态库搜索路径
2. 通过环境变量LD_LIBRARY_PATH指定动态库搜索路径
3. 在编译目标代码时指定该程序的动态库搜索路径
4. 默认的动态库搜索路径/lib    /usr/lib



在使用GCC编译时添加cJSON库,一般可以通过指定库的头文件路径和库文件路径来实现。以下是具体步骤和示例: #### 1. 找到cJSON库的头文件和库文件位置 假设cJSON库已经安装在系统中,头文件通常位于`/usr/local/include`或`/usr/include`目录下,库文件通常位于`/usr/local/lib`或`/usr/lib`目录下。如果是自己编译安装的cJSON库,需要根据实际安装路径来确定。 #### 2. 使用`-I`选项指定头文件路径 如果cJSON头文件不在默认的搜索路径中,需要使用`-I`选项指定头文件所在的目录。例如,如果cJSON头文件位于`/path/to/cjson/include`目录下,可以使用以下命令: ```bash gcc -I/path/to/cjson/include your_source_file.c -o your_executable ``` #### 3. 使用`-L`选项指定库文件路径 如果cJSON库文件不在默认的搜索路径中,需要使用`-L`选项指定库文件所在的目录。例如,如果cJSON库文件位于`/path/to/cjson/lib`目录下,可以使用以下命令: ```bash gcc -I/path/to/cjson/include -L/path/to/cjson/lib your_source_file.c -o your_executable ``` #### 4. 使用`-l`选项链接cJSON库 使用`-l`选项告诉GCC要链接的库名。对于cJSON库,库名通常是`cjson`,因此可以使用以下命令: ```bash gcc -I/path/to/cjson/include -L/path/to/cjson/lib your_source_file.c -o your_executable -lcjson ``` ### 完整示例 假设cJSON库安装在`/usr/local`目录下,源文件为`test.c`,编译命令如下: ```bash gcc -I/usr/local/include -L/usr/local/lib test.c -o test -lcjson ``` ### 示例代码 以下是一个简单的使用cJSON库的示例代码`test.c`: ```c #include <stdio.h> #include <cjson/cJSON.h> int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); char *json_str = cJSON_Print(root); printf("%s\n", json_str); cJSON_free(json_str); cJSON_Delete(root); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值