1 问题描述
程序运行时,提示找不到库。 原因:默认运行加载的库路径为 /usr/lib
如何在加入这些路径呢?以PATH变量为例。 一种方法是:直接在命令行下: PATH="PATH="PATH:/path/to/your/bin:/another/path/to/bin” $ export PATH 这种方法的好处是方便,立即生效,缺点是把当前会话或shell关了之后就失效了,下次还得运行一遍。
另一种方法是:makefile 中增加运行程序的库文件路径 LDFLAGS+= -Wl,-Bstatic -lbt LDFLAGS+= -Wl,-rpath=/opt/lib/ LDDIR+=-Lhost/libbt/lib CC=/opt/toolchain/arm-2012.03/bin/arm-none-linux-gnueabi-gcc
编译指令: (CC)(CC)(LDDIR) -o @@^ $(LDFLAGS)
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 先来看几个相关的环境变量:PATH、LDFLAGS、CFLAGS
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目录加入到该变量中来。