linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解
作为一个linux入门级使用者,gcc/g++
的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到库。在遇到问题的时候我查了挺多前辈总结的资料,也留个脚本希望对朋友们有个帮助。如果也能处理你的问题,我会感到很开心,嘻嘻。
例如:libz.so
g++ -o compress compress.cpp -I/home/include/ -L/lib/ -lz
(1) -I (大写i)
编译程序按照-I指定的路进去搜索头文件。
-I/home/include/
表示将-I/home/include/
目录作为第一个寻找头文件的目录,寻找的顺序是:
/home/include/ -->/usr/include-->/usr/local/include
(2)-L(大写l)
表示:编译程序按照-L指定的路进去寻找库文件,一般的在-L的后面可以一次用-l指定多个库文件。
-L/lib/表示到/lib/目录下找库文件
(3)-l(小写l)
表示:编译程序到系统默认路进搜索,如果找不到,到当前目录,如果当前目录找不到,则到LD_LIBRARY_PATH
等环境变量置顶的路进去查找,如果还找不到,那么编译程序提示找不到库。
本例子使用的是gunzip库,库文件名是libz.so,库名是z。很容易看出,把库文件名的头lib和尾.so去掉就是库名了。
总结
到此这篇关于linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解的文章就介绍到这了,更多相关linux g++编译程序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
详解 linux c++的编译器g++的基本使用
linux c++的编译器g++基本使用 g++是 linux下c++的编译器,在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 2.将预处理后的文件不转换成汇编语言,生成文件.s 3.有汇编变为目标代码(机器代码)生成.o的文件 4.连接目标代码,生成可执行程序 g++ 编译c++经常使用的参数: -c 只编译,不连接.例如: g++ -c helloworld.cpp 只生成helloworld.o不连接 -o 指定输出文件名.例如:g++ -c helloworld.cpp
-
linux下使用g++编译cpp工程的方法
C++编程中相关文件后缀 1.单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[]) { std::cout << "hello, world" << std::endl; return(0); } 程序使用定义在头文件 iostream 中的 co
-
Linux下g++编译与使用静态库和动态库的方法
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库(*.a)与动态库(*.so)的生成与使用方式是不同的.刚开始可能会不适应,但是用多了应该会习惯这种使用,因为步骤上并没有VS下配置那么繁琐. 下面就分别总结下linux下生成并使用静态库与动态库的方法:(由于是C++项目,所以编译器用的g++,但是与gcc的使用是相通的) 首先是准备工作,把我们需
-
Linux环境使用g++编译C++方法总结
单个源文件生成可执行程序 下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: /* helloworld.cpp */ #include <iostream> int main(int argc,char *argv[]) { std::cout << "hello, world" << std::endl; return(0); } 程序使用定义在头文件 iostream 中的 cout,向标准输出写入一个简单的
-
Linux环境g++编译GDAL动态库操作方法
一.编译步骤 解压下载的GDAL源程序,并在命令行中切换到解压目录. tar -xzvf gdal-2.1.3.tar.gz cd gdal-2.1.3 GDAL可通过configure来实现一些自定义配置,可通过./configure –h命令来查看.--prefix=path表示设置GDAL的make install后的build目录,里面有生成的头文件和动态库.输入如下命令: ./configure --prefix=/root/Test/gdalbuild 这时可以发现目录中新生成了GD
-
linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解
作为一个linux入门级使用者,gcc/g++ 的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到库.在遇到问题的时候我查了挺多前辈总结的资料,也留个脚本希望对朋友们有个帮助.如果也能处理你的问题,我会感到很开心,嘻嘻. 例如:libz.so g++ -o compress compress.cpp -I/home/include/ -L/lib/ -lz (1) -I (大写i) 编译程序按照-I指定的路进去搜索头文件. -I/home/include/表示将-I/home
-
对Python模块导入时全局变量__all__的作用详解
Python中一个py文件就是一个模块,"__all__"变量是一个特殊的变量,可以在py文件中,也可以在包的__init__.py中出现. 1.在普通模块中使用时,表示一个模块中允许哪些属性可以被导入到别的模块中, 如:全局变量,函数,类.如下,test1.py和main.py test1.py __all__=["test"] def test(): print('----test-----') def test1(): print('----test1----
-
mybatis写xml时数字类型千万别用 !=‘‘(不为空串)进行判断的示例详解
前言 最近项目内更新数据时,发现数字类型字段设置为0时不能正常的更新进数据库,我们打印了下mybatis的sql日志发现字段为0的sql没有被拼接. 样例 下面的是错误示例 ❌ <update id="update" parameterType="com.chengfengfeng.test.domain.People"> update people set <if test="age!=null and age !=''"&g
-
ssm框架下web项目,web.xml配置文件的作用(详解)
1. web.xml中配置了CharacterEncodingFilter,配置这个是拦截所有的资源并设置好编号格式. encoding设置成utf-8就相当于request.setCharacterEncoding("UTF-8"); foreEncoding设置成true就相当于response.setCharacterEncoding("UTF-8"); <filter> <filter-name>CharacterEncodingFi
-
Linux下Kafka分布式集群安装教程
Kafka(http://kafka.apache.org/) 是由 LinkedIn 使用 Scala 编写的一个分布式消息系统,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础,具有高水平扩展和高吞吐量.Spack.Elasticsearch 都支持与 Kafka 集成.下面看一下几种分布式开源消息队列系统的对比: Kafka 集群架构: 一般不建议直接使用 Kafka 自带的 Zookeeper 建立 zk 集群,这里我们使用独
-
Linux下压缩与解压命令详解
本文为大家分享了Linux下压缩与解压缩命令,供大家参考,具体内容如下 [tar命令] 解压:tar -zxvf FileName.tar 压缩:tar -czvf FileName.tar DirName [gz命令] 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName .tar.gz 和 .tgz 解压:tar -zxvf FileName.tar.gz 压缩:tar -zcvf FileName.tar.gz Di
-
Linux下scp无密码上传 下载 文件 目录的方法
在Linux下远程备份的时候,需要配置scp的 无密码复制文件.目录.就把这个设置整理如下: 本地服务器:A 远程服务器:B 1.在 A 上运行 ssh-keygen -t rsa 在/root/.ssh 下生成id_rsa 和 id_rsa.pub 两个文件 在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A 如图所示 2. 在 B 上也同样运行 ssh-keygen -t rsa 3. 在 B 的 /root/.ssh 下创建authorized_ke
-
linux 编译安装python3.6的教程详解
1. 首先去官网 https://www.python.org/downloads/source/ 下载 Gzipped source tarball 不要下载 " XZ compressed source tarball " ,目前 python3.6 最新版压缩包名字是:Python-3.6.7.tgz. 把下载的压缩包随便放到一个地方,也可以放到桌面(便于安装过后删除安装包和解压后的安装包). 2. 命令行切换到上面压缩文件所在的目录(比如桌面),然后输入 tar -xzf P
-
linux系统之进程管理详解
目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 在当代面向线程设计的计算机结构中,进程是线程的容器.程序是指令.数据及其组织形式的描述,进程是程序的实体.是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和
随机推荐
- IOS 中CALayer绘制图片的实例详解
- Asp.Net 程序错误Runtime Error原因与解决
- 详解Nodejs基于mongoose模块的增删改查的操作
- 解析微软Update在线升级功能
- asp.net 获取Datalist中Checkbox的值的小结
- asp.net控件DataList分页用法
- php结合md5实现的加密解密方法
- smarty模板嵌套之include与fetch性能测试
- css 分页效果
- Nginx记录分析响应慢的请求及替换网站响应内容的配置
- Jquery获得控件值的三种方法总结
- React Native之TextInput组件解析示例
- 用net命令使局域网文件批量同步更新
- Android-实现切换Fragment页功能的实现代码
- java多线程编程之InheritableThreadLocal
- C#实现DataTable映射成Model的方法(附源码)
- ECharts地图绘制和钻取简易接口详解
- win10环境下使用Hyper-V进行虚拟机创建的教程(图解)
- java递归实现科赫雪花
- mysql5.7版本root密码登录问题的解决方法