gcc中的 -I -L(大写l) -l(小写l) -Wl,-rpath 选项
gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:
例子1:
gcc -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm
上面这句话在编译example1.c 时,
-I /usr/local/include/freetype2 表示将/usr/local/include/freetype2作为第一个寻找头文件的目录,参数-l (小写的i)。
-lfreetype ,-l (小写的l)参数就是用来指定程序要链接的库,-l参数紧接着就是库名。指定程序链接的库名是freetype.
-lm 表示程序指定的链接库名是m (math数学库)
例2:
gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld
上面这句表示在编译hello.c时:
-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,
寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
-L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,
寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
-lworld表示在上面的lib的路径中寻找libworld.so动态库文件
(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件),程序链接的库名是world
例3:
使用GCC编译动态链接库的项目时,在其他目录下执行很可以出现找不到动态链接库的问题。
这种情况多发生在动态链接库是自己开发的情况下,原因就是程序运行时找不到去何处加载动态链接库。
可能会说在编译时指定了链接的目录啊!编译时指定的 -L的目录,只是在程序链接成可执行文件时使用的。程序执行时动态链接库加载不到动态链接库。
j解决方法是使用-wl,-rpath=<link_path>参数,<link_path>就是链接库的路径
如: gcc -o test test.c -I/test/include -L/test/lib -ltest -Wl,-rpath=/test/lib
参考资料
https://blog.csdn.net/furzoom/article/details/70843664
https://www.cnblogs.com/alan666/p/8311984.html
gcc中的 -I -L(大写l) -l(小写l) -Wl,-rpath 选项相关推荐
- Makefile中的“-I”(大写i),“-L”(大写l),“-l”(小写l)
用gcc编译程序时,可能会用到"-I"(大写i),"-L"(大写l),"-l"(小写l)等参数, "-I"(大写i):表 ...
- C语言/C++中字符串中英文字母大写转化成小写详细内容
字符串大写转化成小写: 先建立一个字符数组,char a[22]; 在将字符数组里面放内容,gets_s(sp);再将这个字符数组存放在b变量(指针变量)中; 这个b变量的类型是cahr*; 最后,将 ...
- 记一次JAVA中字符串首字母大写转化为小写的Code
因为见过很多文章都有记载, 所以我这里也就用于个人简单的记录下 /*** 首字母大写转化为小写* 如果首字符不是大写;就原值返回.* @param strValue* @return*/public ...
- C语言从键盘上输入一个字符串,要求统计并输出该字符串中各位数字、大写字母、小写字母、空格和其他字符出现的次数
#include <stdio.h> #include <string.h> int main() { char str[100]; int i,num=0,s ...
- linux 下 gcc编译程序时,-I(大写i) 与-L(大写l)-l(小写l) 的作用
-I(大写i) include头文件非标准库中存在的不是在当前路径文件夹下的,需要将地址用-I(大写)指定 如: gcc test.c -I /home/hello/include -L(大写l) 放 ...
- 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母
假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...
- linux编译l和l区别,linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解...
作为一个linux入门级使用者,gcc/g++的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到库.在遇到问题的时候我查了挺多前辈总结的资料,也留个脚本希望对朋友们有个帮助.如果也能处理你 ...
- gcc / -L 和 -Wl,-rpath 区别
首先需明确一点, 链接阶段查找库的位置和运行时查找库的位置是两码事. -L 指定编译链接时库的搜索目录. -Wl,-rpath 指定程序运行时库搜索目录. 可以使用 ldd 命令查看生成的可执行程序的 ...
- 解决tex中参考文献出现[S.l.: s.n.]、[S.l.]、 [s.n.]问题
见: 解决tex中参考文献出现[S.l.: s.n.].[S.l.]. [s.n.]问题_Robot Liu的博客-CSDN博客 问题解决:LaTeX biblatex 参考文献出现 [S.l.]: ...
- Makefile: 参数-I (大写字母i), -l (小写字母l) 和-L的区别
在写Makefile的时候,其实并不像写CMakeList.txt那么方便,直接include_directories, target_link_libraries,而且对于这些关键字大小写都是不敏感 ...
最新文章
- P1155 双栈排序(二分图的染色判断+链式前向星)
- 编程之美3.3 计算两个字符串的相似度
- vue 表格内容跳转页面_Vue项目实战系列文章(一)项目预热
- VS2013导入opencv320配置属性文件
- SQL SERVER 2008 数据恢复错误的解决步骤
- WinForm支持拖拽效果
- webapp入门到实战_web前端入门到实战:前端高手在CSS 开发效率的必备片段
- keepalived脑裂问题查找
- Tensorflow GAN对抗生成网络实战
- layui 时间控件 只显示时分或者分秒
- c语言车牌号5位数,为何有的车牌是五位数字,有的加英文字母?终于知道原因了!...
- mysql pxc gcache_MySQL高可用之PXC
- python微信投票该用户被锁定、恢复时间_微信登录多久恢复正常
- 广工anyview数据结构第七章(2021.12)
- 管理好团队的七个要点,你做到了几个?
- 大恒相机开发实践(1)——实时采图
- 华为OD机试真题 Python 实现【最快到达医院的方法】【2023 Q1 | 100分】
- 软考初级程序员--学习
- 用纸筒做机器人_怎样用纸盒做机器人
- html病毒实验,计算机病毒实验手册4-5-9-10-8-v4.0.pdf
热门文章
- durango服务器维护,Durango狂野大陆连接服务器失败_九游手机游戏
- 神棍节前夕,沃商店迎来1岁生日
- 《心灵捕手》中的10段经典台词(10 classic lines from Good Will Hunting)
- 美景订餐管理系统--用于公司内部加班订餐
- 正则表达式高级用法: 分组
- Debian 7 源(32/64bit)好用的源
- 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
- excel高级筛选怎么用_Excel表格自动筛选的9个高级用法
- 小武实习的debug日记
- 简单粗暴讲述自动化仓储系统