GCC编译器中的-I -L -l 选项。
原文链接: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 选项。相关推荐
- C++17标准STL库并行策略在GCC编译器中的替代实现方法
C++17标准STL库并行策略在GCC编译器中的替代实现方法 严正声明:本文系作者davidhopper原创,未经许可,不得转载. 2019年8月5日更新: GCC 9.1.0可支持C++ 17标 ...
- GCC编译器和GDB调试器常用选项
GCC编译器 gcc hello.c -o hello #将hello.c编译成hello可执行文件 gcc -E hello.c -o hello.i ...
- GCC编译器中三个重要的函数
1. _builtin_popcount(x):该函数用于对整数中"1"的个数进行计数 #include <stdio.h> #include <stdlib.h ...
- 关于GCC/LLVM编译器中的sanitize选项用处用法详解
关于GCC/LLVM编译器中的sanitize选项用处用法详解 编译器中sanitize选项原本来自google的开源C/C+ +工具集sanitizers项目, 包括了AddressSaniti ...
- GCC编译器使用指北
GCC相关 文章目录 GCC相关 1. GCC是是什么? 2. 安装GCC编译器 2.1 Linux安装GCC 2.2 Windows安装GCC 2.3 手动安装指定版本 3. gcc 和 g++ 是 ...
- linux编译器下载地址,GNU Compiler Collection(gcc编译器) v4.9.1 linux版
授权方式:免费软件 软件类型:国产软件 软件语言:简体中文 软件大小:85.5 MB 推荐星级: 软件厂商:Home Page 更新时间:2019-03-28 16:36 网友评论:0 条 运行环境 ...
- 如何安装GCC编译器
目前,GCC可以用来编译C/C++.FORTRAN.JAVA.OBJC.ADA等语言的程序,可根据需要选择安装支持的语言.本文以在Redhat Linux上安装GCC4.1.2为例(因在项目开发过程中 ...
- linux系统下载编译器,linux gcc编译器下载 GNU Compiler Collection(gcc编译器) v4.7.0 for linux版 下载-脚本之家...
GNU Compiler Collection是一款linux版的gcc编译器软件.GNU Compiler Collection是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部 ...
- linux安装gcc编译器
转载:http://www.jb51.net/LINUXjishu/15460.html 分两种情况: 先看这篇转过来的文章,俺老孙懒得写了. Linux软件安装通用思路 在Linux系统中,软件安装 ...
最新文章
- 感悟Windows7
- AutoShape:实时单目3D检测网络(ICCV2021)
- 学习Spring Boot:(十)使用hibernate validation完成数据后端校验
- PHP 用each 和list配合 达到map的效果
- jQuery Mobile 图标无法显示
- 报错引发的版本对应——tensorflow+keras+python版本对应(全)
- poj 2948 Martian Mining (dp)
- Linux设置root默认密码
- java 反编译class文件_用Java实现JVM第三章《解析class文件》
- 2014年的六级考试即将来临,你们准备好了吗?
- php 正则表达式 匹配 字符串,PHP 字符串与正则表达式匹配
- c语言int函数使用方法,int函数的使用方法_Excel中int函数的操作用法
- 基于JavaFx的通讯录
- Unity3D-VR《静夜诗》5-李白吟诗
- 显示12306服务器处理中正在排队,12306排队等待中怎么回事_12306排队等待时间_12306一直在排队解决方法...
- “白发”位置竟暗示五脏六腑健康状况
- Linux学习(六):proftpd搭建,完美解决vsftpd中文引号bug
- tensorRT onnx中属性名相同,但实际大小不同生成问题
- 腾讯云服务器有多垃圾,清理腾讯云服务器的各种垃圾日志
- 【Linux】:shell循环语句