一、Linux系统环境变量
- /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
- /etc /environment : 在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
- ~/.profile : 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的~./bashrc文件。
- ~/.bashrc : 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
二、运行库路径
- 库默认查找路径:/lib ,/usr/lib
- 一个新库,如何让程能运行时找到?
1)将新库直接放到/lib或/usr/lib下面
执行:ldconfig
2) 在/etc/ld.so.conf 文件中添加新库的路径
如:include /usr/local/lib
执行:ldconfig
3) 添加到环境变量 LD_LIBRARY_PATH 中
临时方法:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH //重启了就没了
如果想LD_LIBRARY_PATH 永久生效,可以把上面这句加到开机启动文件中 。
4)编译时,添加 -Wl,-rpath path 指定路径
三、GCC、G++ 编译头文件查找
- 从-I开始
- 找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
- 再找内定目录 /usr/include
/usr/include/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/……/……/……/……/include/g++-3
/usr/lib/gcc-lib/i386-linux/2.95.2/……/……/……/……/i386-linux/include
库文件但是如果装gcc的时候,是有给定的prefix的话,那么就是
/usr/include
prefix/include
prefix/xxx-xxx-xxx-gnulibc/include
prefix/lib/gcc-lib/xxxx-xxx-xxx-gnulibc/2.8.1/include