linux命令学习:PATH and LDFLAGS and CFLAGS
CFLAGS 表示用于 C 编译器的选项,
CXXFLAGS 表示用于 C++ 编译器的选项。
这两个变量实际上涵盖了编译和汇编两个步骤。
先来看几个相关的环境变量:PATH、LDFLAGS、CFLAGS
PATH:大家应该都非常熟悉。安装一个包后可能会在安装文件夹建立一个bin文件夹,里面都是些可执行程序,为了让系统能找到这些程序,就须要我们把该路径增加到PATH环境变量中。以下会讲到怎样增加。
LDFLAGS:gcc等编译器会用到的一些优化參数,也能够在里面指定库文件的位置。使用方法:LDFLAGS=“-L/usr/lib -L/path/to/your/lib”。
每安装一个包都差点儿一定的会在安装文件夹里建立一个lib文件夹。假设你明明安装了某个包,而安装还有一个包时。它愣是说找不到。那就把那个包的lib路径增加的LDFALGS中试一下吧。
CFLAGS:和LDFLAGS相似,只只是要向里加如的是头文件(.h文件)的路径。如:CFLAGS=“-I/usr/include -I/path/to/your/include”。相同地。安装一个包时会在安装路径下建立一个include文件夹,当安装过程中出现故障时。试着把曾经安装的包的include文件夹增加到该变量中来。
LIBS:告诉链接器要链接哪些库文件,如LIBS = -lpthread -liconv
简单地说。LDFLAGS是告诉链接器从哪里寻找库文件。而LIBS是告诉链接器要链接哪些库文件。只是使用时链接阶段这两个參数都会加上,所以你即使将这两个的值互换,也没有问题。
有时候LDFLAGS指定-L尽管能让链接器找到库进行链接,可是执行时链接器却找不到这个库,假设要让软件执行时库文件的路径也得到扩展,那么我们须要增加这两个库给"-Wl,R":
export C_INCLUDE_PATH="/mnt/toolchain/lin32/beecrypt-4.1.2/include"
export LDFLAGS="-L/mnt/toolchain/lin32/beecrypt-4.1.2 "
export CPLUS_INCLUDE_PATH="~/local/include"
export LD_LIBRARY_PATH="/usr/bin"
./configure
那怎样在那些变量中增加这些路径呢?以PATH变量为例。
一种方法是:直接在命令行下:
$ PATH="$PATH:/path/to/your/bin:/another/path/to/bin"
$ export PATH
这样的方法的优点是方便,马上生效,缺点是把当前会话或shell关了之后就失效了,下次还得执行一遍。
还有一种方法是:把以下的两行内容增加到~/.bashrc文件里,假设想让其影响到整个系统而不只是当前用户,就把以下的内容增加到/etc/bash.bashrc(记得有的系统是/etc/bashrc这个文件)


然后,又一次启动shell就可以。
须要注意的是,PATH变量的分隔符是:号,其它的是空格,
所以LDFLAGS应该是这样:
LDFLAGS=“$LDFLAGS -L/path/to/lib -L/path/to/lib”
CFLAGS应该是这样:
CFLAGS=“$CFLAGS -I/path/to/iclude -I/path/to/include”
linux命令学习:PATH and LDFLAGS and CFLAGS的更多相关文章
- 别出心裁的Linux命令学习法
别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...
- Linux命令学习
Linux命令学习 Ubuntu常用快捷键 •Ctrl+Alt+T: 打开终端 •Ctrl+Shift+T: 新建标签页 •Tab: 终端中命令补全 •Alt+数字N: 终端中切换到第N个标签页 •↑ ...
- 安装虚拟机&Linux命令学习
安装虚拟机&Linux命令学习 基于VirtualBox虚拟机安装Ubuntu 1.下载安装VirtualBox 根据自己电脑(32位操作系统)的实际情况,我在网上找了相应的VirtualBo ...
- Linux命令学习总结之rmdir命令的相关资料可以参考下
这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下(http://www.nanke0834.com) 命令简介: rmdir命令用用来删除空目录,如果目录非空, ...
- linux命令学习之:chmod
chmod命令用来变更文件或目录的权限.在Linux系统家族里,文件或目录权限的控制分别以读取R.写入W.执行X3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件与目录 ...
- Linux命令学习笔记1
1.Linux命令学习 2.Mkdir /data -创建文件夹 在/下创建文件夹 data 3.Cd -目录切换 列如cd / 4.Touch /data/1 ...
- 《Linux命令学习手册》系列分享专栏
<Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/207 ...
- 20155229付钰涵-虚拟机安装及LINUX命令学习
安装Ubuntu遇到的问题 问题一: 新建虚拟电脑的版本只有32-bit,与老师所给教程中的64-bit不符.为此我上百度搜寻了答案. 第一种方法: 控制面板--程序与功能--启动或关闭windows ...
- Linux命令学习笔记目录
Linux命令学习笔记目录 最近正在使用,linux,顺便将用到的命令整理了一下. 一. 文件目录操作命令: 0.linux命令学习笔记(0):man 命令 1.linux命令学习笔记(1):ls命令 ...
随机推荐
- nginx 默认访问index.php
代码 http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #k ...
- ruby的第一次使用
今天看购买的小册,看到推荐使用的工具是ruby写的,提供了源码地址,但是不知道怎么使用 因此尝试使用了下ruby,并记录下来 1.安装 去ruby的官网,下载windows安装包 启动 Ruby 安装 ...
- [Tensorflow] Cookbook - Neural Network
In this chapter, we'll cover the following recipes: Implementing Operational Gates Working with Gate ...
- 7.8CSS部分的学习!
<!DOCTYPE html> <html> <head> <title>CSS元素选择器</title> <style type=& ...
- 秒杀应用的MySQL数据库优化
关于秒杀 随着双11活动的不断发展,小米饥饿营销模式的兴起,“秒杀”已经成为一个热点词汇.在一些活动中,热销商品会以惊人的速度售罄,比如最近本人在抢购美图M4手机,12点开卖,1分钟之内就被售罄. 秒 ...
- Linux系统下升级Python版本步骤(suse系统)
Linux系统下升级Python版本步骤(suse系统) http://blog.csdn.net/lifengling1234/article/details/53536493
- MySQL使用mysqldump备份及还原
MySQL可以使用mysqldump进行数据的逻辑备份,配合开启bin log日志可以实现数据的全量恢复及增量恢复 MySQL版本查看 修改配置文件记录bin log日志 [mysqld] #bin ...
- keil 生成 bin文件
D:\Keil_v5\ARM\ARMCC\bin\fromelf.exe --bin -o $L@L.bin #L 这个就是keil的默认安装路径
- win10环境下搭建zookeeper伪集群
一.下载zookeeper https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 这里笔者下载的是zookeeper-3.3.6 二.配置zoo ...
- Python:正则表达式
学习内容参考:Python正则表达式指南 匹配流程 语法表