原文链接:http://blog.csdn.net/stpeace/article/details/49408665

在本文中, 我们来聊聊gcc中三个常见的参数, 也即-I(大写的i), -L(大写的l)和-l(小写的l)

    一. 先说 -I   (注意是大写的i)

我们先来看简单的程序:

main.c:

#include <stdio.h>
#include "add.h"  int main()
{  int a = 1;  int b = 2;  int c = add(a, b);  printf("sum is %d\n", c);  return 0;
}  

add.c:

int add(int x, int y)
{  return x + y;
}  

add.h:

int add(int x, int y);

编译链接运行如下:

[taoge@localhost test]$ pwd
/home/taoge/test
[taoge@localhost test]$ ls
add.c  add.h  main.c
[taoge@localhost test]$ gcc main.c add.c
[taoge@localhost test]$ ./a.out
sum is 3
[taoge@localhost test]$   

我们看到, 一切正常。 gcc会在程序当前目录、/usr/include和/usr/local/include目录下查找add.h文件, 刚好有, 所以ok.

我们进行如下操作后再编译, 却发现有误, 不怕, 我们用-I就行了:

[taoge@localhost test]$ ls
add.c  add.h  a.out  main.c
[taoge@localhost test]$ rm a.out; mkdir inc; mv add.h inc
[taoge@localhost test]$ ls
add.c  inc  main.c
[taoge@localhost test]$ gcc main.c add.c
main.c:2:17: error: add.h: No such file or directory
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$
[taoge@localhost test]$ gcc -I ./inc/ main.c add.c
[taoge@localhost test]$ ls
add.c  a.out  inc  main.c
[taoge@localhost test]$ ./a.out
sum is 3
[taoge@localhost test]$   

上面把add.h移动到inc目录下后, gcc就找不到add.h了, 所以报错。 此时,要利用-I来显式指定头文件的所在地,  -I就是用来干这个的:告诉gcc去哪里找头文件。

二. 再来说-L(注意是大写的L)

我们上面已经说了, -I是用来告诉gcc去哪里找头文件的, 那么-L实际上也很类似, 它是用来告诉gcc去哪里找库文件。 通常来讲, gcc默认会在程序当前目录、/lib、/usr/lib和/usr/local/lib下找对应的库。 -L的意思很明确了, 就不在赘述了。

三. 最后说说-l (注意是小写的L)

我们之前讨论过Linux中的静态库和动态库, -l的作用就是用来指定具体的静态库、动态库是哪个。

GCC编译器中的-I -L -l 选项。相关推荐

  1. C++17标准STL库并行策略在GCC编译器中的替代实现方法

    C++17标准STL库并行策略在GCC编译器中的替代实现方法 严正声明:本文系作者davidhopper原创,未经许可,不得转载.  2019年8月5日更新: GCC 9.1.0可支持C++ 17标 ...

  2. GCC编译器和GDB调试器常用选项

    GCC编译器 gcc hello.c -o hello                   #将hello.c编译成hello可执行文件 gcc -E hello.c -o hello.i       ...

  3. GCC编译器中三个重要的函数

    1. _builtin_popcount(x):该函数用于对整数中"1"的个数进行计数 #include <stdio.h> #include <stdlib.h ...

  4. 关于GCC/LLVM编译器中的sanitize选项用处用法详解

    关于GCC/LLVM编译器中的sanitize选项用处用法详解 ​ 编译器中sanitize选项原本来自google的开源C/C+ +工具集sanitizers项目, 包括了AddressSaniti ...

  5. GCC编译器使用指北

    GCC相关 文章目录 GCC相关 1. GCC是是什么? 2. 安装GCC编译器 2.1 Linux安装GCC 2.2 Windows安装GCC 2.3 手动安装指定版本 3. gcc 和 g++ 是 ...

  6. linux编译器下载地址,GNU Compiler Collection(gcc编译器) v4.9.1 linux版

    授权方式:免费软件 软件类型:国产软件 软件语言:简体中文 软件大小:85.5 MB 推荐星级: 软件厂商:Home Page 更新时间:2019-03-28 16:36 网友评论:0  条 运行环境 ...

  7. 如何安装GCC编译器

    目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.本文以在Redhat Linux上安装GCC4.1.2为例(因在项目开发过程中 ...

  8. linux系统下载编译器,linux gcc编译器下载 GNU Compiler Collection(gcc编译器) v4.7.0 for linux版 下载-脚本之家...

    GNU Compiler Collection是一款linux版的gcc编译器软件.GNU Compiler Collection是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部 ...

  9. linux安装gcc编译器

    转载:http://www.jb51.net/LINUXjishu/15460.html 分两种情况: 先看这篇转过来的文章,俺老孙懒得写了. Linux软件安装通用思路 在Linux系统中,软件安装 ...

最新文章

  1. 感悟Windows7
  2. AutoShape:实时单目3D检测网络(ICCV2021)
  3. 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
  4. PHP 用each 和list配合 达到map的效果
  5. jQuery Mobile 图标无法显示
  6. 报错引发的版本对应——tensorflow+keras+python版本对应(全)
  7. poj 2948 Martian Mining (dp)
  8. Linux设置root默认密码
  9. java 反编译class文件_用Java实现JVM第三章《解析class文件》
  10. 2014年的六级考试即将来临,你们准备好了吗?
  11. php 正则表达式 匹配 字符串,PHP 字符串与正则表达式匹配
  12. c语言int函数使用方法,int函数的使用方法_Excel中int函数的操作用法
  13. 基于JavaFx的通讯录
  14. Unity3D-VR《静夜诗》5-李白吟诗
  15. 显示12306服务器处理中正在排队,12306排队等待中怎么回事_12306排队等待时间_12306一直在排队解决方法...
  16. “白发”位置竟暗示五脏六腑健康状况
  17. Linux学习(六):proftpd搭建,完美解决vsftpd中文引号bug
  18. tensorRT onnx中属性名相同,但实际大小不同生成问题
  19. 腾讯云服务器有多垃圾,清理腾讯云服务器的各种垃圾日志
  20. 【Linux】:shell循环语句

热门文章

  1. 某强人对几款杀毒软件的形容
  2. 每天挤一点,实现自己的selector函数(1)-语义分析-v1.02(最后修改于2012年3月19日)
  3. 新iPad未到 老iPad价格反弹
  4. MySql表分区介绍
  5. 基于正点原子开拓者FPGA串口的Modelsim仿真程序
  6. SLA文档+中学部教练有悟
  7. Milvus 2.0 Knowhere 概览
  8. python3视频教程推荐_《Python3从入门到放弃》视频教程
  9. 2021Java笔试真题,满满干货指导
  10. 婴儿围栏ASTM F406亚马逊CPC美国CPSIA认证玩具CPC认证儿童产品CPC认证