Linux安装库文件(环境变量和makefile)

CFLAGS 表示用于 C 编译器的选项,
CXXFLAGS 表示用于 C++ 编译器的选项。
这两个变量实际上涵盖了编译和汇编两个步骤。

CFLAGS/CPPFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该变量中来。

LDFLAGS:gcc 等编译器会用到的一些优化参数,也可以在里面指定库文件的位置。用法:LDFLAGS=-L/usr/lib -L/path/to/your/lib。每安装一个包都几乎一定的会在安装目录里建立一个lib目录。如果明明安装了某个包,而安装另一个包时,它愣是 说找不到,可以抒那个包的lib路径加入的LDFALGS中试一下。

LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread -liconv

简单地说,LDFLAGS是告诉链接器从哪里寻找库文件,而LIBS是告诉链接器要链接哪些库文件。不过使用时链接阶段这两个参数都会加上,所以你即使将这两个的值互换,也没有问题。

有时候LDFLAGS指定-L虽然能让链接器找到库进行链接,但是运行时链接器却找不到这个库,如果要让软件运行时库文件的路径也得到扩展,那么我们需要增加这两个库给"-Wl,R":

LDFLAGS = -L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib

如果在执行./configure以前设置环境变量export LDFLAGS="-L/var/xxx/lib -L/opt/mysql/lib -Wl,R/var/xxx/lib -Wl,R/opt/mysql/lib" ,注意设置环境变量等号两边不可以有空格,而且要加上引号(shell的用法)。那么执行configure以后,Makefile将会设置这个选项,链 接时会有这个参数,编译出来的可执行程序的库文件搜索路径就得到扩展了

时间: 2024-08-05 12:50:09

Linux安装库文件(环境变量和makefile)的相关文章

linux安装jdk已经环境变量配置

一.安装 创建安装目录,在/usr/java下建立安装路径,并将文件考到该路径下: # mkdir /usr/java 1.jdk-6u11-linux-i586.bin 这个是自解压的文件,在linux上安装如下: # chmod +x jdk-6u11-linux-i586.bin # ./jdk-6u11-linux-i586_rpm.bin (注意,这个步骤一定要在jdk-6u11-linux-i586.bin所在目录下) 在按提示输入yes后,jdk被解压. 出现一行字:Do you

Linux下Jdk的安装和jdk环境变量的设置

我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍. 一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个用户登录系统后,都有自己专用的运行环境.而这个环境是由一组变量所定义,这组变量被称为环境变量.用户可以对自己的环境变量进行修改以达到对环境的要求. 二.定制环境变量 环境变量是和Shell紧密相关的,它是通过Shell命令来设置的.环境变量又可以被所有当前用户所运行的程序所使用.对于bash来说,

linux网络配置、环境变量以及JDK安装(CentOS 6.5)

由于需要搭建hadoop平台,但是苦于没有现成可用的linux服务器,只好自己下载了CentOS 6.5从头装起,安装过程中遇到了很多问题,比如网络配置.时钟同步.环境变量配置.以及各种服务的启停,还有jdk的安装等(虽然系统自带JDK,但是本人过于低端,自带的JDK的安装路径都搞不明白,就干脆自己装了一个),时间长了容易忘记,所以在这里写下来作为记录,顺便也分享给与我一样的菜鸟玩家,高手们可以退散了,当然了如果有批评指正小弟跪迎. 新建用户 新安装的linux一般只有root管理员用户,由于我

Linux下各种常见环境变量的配置

Linux系统下各种环境变量都通过修改/etc/profile文件来实现.由于是系统文件,修改此文件需要root权限.因此实现以下功能都需要用户拥有root权限. 另:不要轻易修改profile文件中的现有内容.应在保证原有内容不变的前提下,在文件的最后插入新的一行. 1.路径变量PATH 当用户在某工作目录执行一个命令或者可执行程序时,若当前路径下不存在该程序,则系统将从PATH路径列表中查找指定的应用程序.还记得java命令,ping命令么?这些应用程序所在的文件夹都包含在了PATH路径中.

Linux系统下修改环境变量PATH路径的三种方法

比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.#PATH=$PATH:/etc/apache/bin 使用这种方法,只对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效 2.#vi /etc/profile 在适当位置添加 PATH=$PATH:/etc/apache/bin (注意:= 即等号两边不能有任何空格) 这种方法最好,除非你手动强制修改PATH的值,否则将不会被改变 3.#vi ~/.bash_profile 修改PATH行,把/et

Linux 下如何设置环境变量

假如你安装了一个软件,安装好后,输入命令时,提示"command not found", 这涉及到环境变量的PATH问题.PATH设置是linux下定制环境变量的一个组成部分. linux中每个用户都有一个专门的运行环境,这个环境就是一组环境变量的定义,用户可以对自己的运行环境进行定制.环境和Shell紧密相关,用户登录系统后就启动了一个Shell,一般是bash,bash有两个系统级配置文件,/etc/bashrc 和 /etc/profile. 1, echo 显示环境变量. ec

Linux下配置Node环境变量及问题详解

这是之前在Linux下配置Node环境变量时踩过的坑,今天又有小伙伴质询这个问题,因此记录下来,不仅是给新童鞋们一些参考,也方便日后查阅 在这之前,相信都已经安装好了,没安装的可以查看博主另一篇文章  ---------http://www.cnblogs.com/Halifa/p/5772263.html 配置Node环境变量有永久生效和当时生效几种方式,这里只讲解永久生效 进入主题: 修改/etc/profile文件,在末尾添加以下内容 export NODE_HOME=/usr/local

java基础学习总结一(java语言发展历史、jdk的下载安装以及配置环境变量)

最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习. 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早的计算机使用电子管,01主要有高低电平控制.2:汇编语言,借助一些特殊符号,相比机器语言,更容易为人所理解,但是仍然不够人性化.3:高级语言,分为面向过程语言,例如C语言(贝尔实验室发明),和面向对象语言,例如C++.java.C#等. 二:java语言的发展 1:java语言是有sun公司发明的,

嵌入式 Linux下永久生效环境变量bashrc

嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件, .bash_history   记录之前输入的命令 .bash_logout    当你退出时执行的命令 .bash_profile    当你登入shell时执行 .bashrc             当你登入shell时执行 请注意后两个的区别:'.bash_profile'只