Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1677113
  • 博文数量: 391
  • 博客积分: 8464
  • 博客等级: 中将
  • 技术积分: 4589
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-13 15:12
个人简介

狮子的雄心,骆驼的耐力,孩子的执著!

文章分类

全部博文(391)

文章存档

2023年(4)

2018年(9)

2017年(13)

2016年(18)

2014年(7)

2013年(29)

2012年(61)

2011年(49)

2010年(84)

2009年(95)

2008年(22)

分类: LINUX

2016-12-16 09:38:51

原文地址:编译常用环境变量 作者:mxcai2005

$ export PATH=$PATH:/opt/gcc-4.3/bin

//设置PATH,一般为可执行文件的路径

 

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/test/test-lib/lib/pkgconfig

//设置PKG_CONFIG_PATH,用来查找库的存放,链接信息(.pc文件)

eg:

$ ./configure

出错信息:

checking for XCBPROTO... configure: error: Package requirements (xcb-proto >= 1.5) were  not met:

No package 'xcb-proto' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

参考解决方法:

$ pkg-config –list-all | grep “x*” -i

没有发现xcb-proto

手动安装xcb-proto(比如:安装在/home/loongson/lib

$ export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/loongson/lib/pkgconfig

$ ./configure

 

$ export CFLAGS="-g -I/opt/gcc-3.4.6/include/"

//设置CFLAGS ,用来指定头文件的路径(linux的默认头文件位置为:/usr/include

 

$ export C_INCLUDE_PATH=/usr/include:/usr/local/include

//设置C_INCLUDE_PATH ,用来指定头文件的路径

 

$ export LDFLAGS="-L/opt/gcc-3.4.6/mipsel-linux/lib -Wl,--rpath-link -Wl,/home/loongson/lib_mipsel/mylib/lib"

//设置LDFLAGS,用来指定库文件的搜索路径(linux的默认库文件位置为:/lib/usr/lib

eg:

$ make

出错信息:

/opt/gcc-3.4.6/bin/../lib/gcc/mipsel-linux/3.4.6/../../../../mipsel-linux/bin/ld: warning: l ibXau.so.6, needed by /home/loongson/lib_mipsel_gcc3.4.6/lib/libxcb.so, not found (try  using -rpath or -rpath-link)

参考解决方法:

情况是:libxcb.solibXau.so.6, 都已安装到了一个目录

LDFLAGS后面加上路径与库名

-L/home/loongson/lib_mipsel_gcc3.4.6/lib -lxcb  -lXau 

或者:

$ make CC="mipsel-linux-gcc -rpath/home/loongson/lib_mipsel_gcc3.4.6/lib -L/home/loongson/lib_mipsel_gcc3.4.6/lib -lxcb -lXau"

或者:

$ export LDFLAGS="-L/opt/gcc-3.4.6/mipsel-linux/lib -Wl,--rpath-link -Wl,/home/loongson/lib_mipsel/mylib/lib"

$ ./configure

$ make 

 

gcc的选项-Wl,--rpath-link –Wl,DIR会把-rpath-link选项及路径信息传递给链接器'-rpath''-rpath_link'的不同之处在于,'-rpath'指定的路径被包含在可执行文件中,并在运行时使用'-rpath-link'选项仅仅在连接时起作用

 

$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

//设置LDFLAGS,用来指定库文件的搜索路径

其作用是跟ld.config执行(/etc/ld.config的文件里有默认的库搜索路径,你可以往里面添加,然后执行$ sudo ld.config,这样的缺点是它是全局设置的)的效果一样的

 

$ export ACLOCAL="aclocal -I/usr/local/share/aclocal"

//设置 ACLOCAL ,用来指定某些程序安装的路

eg:

$ ./autogen.sh

出错信息:

Aclocal:util-macros needed >=1.5.0 but met is util-macros-1.1.0

参考解决方法:

安装util-macros-1.11.0(默认安装目录:/usr/local

$ ./autogen.sh

出错信息:

Aclocal:util-macros needed >=1.5.0 but met is util-macros-1.1.0

参考解决方法:

$ export ACLOCAL="aclocal -I/usr/local/share/aclocal"

$ ./autogen.sh

 

$ export LD_PRELOAD=/usr/local/lib/preloadable_libiconv.so

//设置 LD_PRELOAD,用来指定程序动态加载库的路径

eg:

$ ./rdesktop 

出错信息:

./rdesktop: error while loading shared libraries: libiconv.so.2: cannot open shared object file:  No such file or directory

参考解决方法:

$ export LD_PRELOAD=/usr/local/lib/libiconv.so.2

$ ./rdesktop 

2011-03-04

阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~