CFLAGS,LDFLAGS,LIBS
CFLAGS 表⽰⽤于 C 编译器的选项,
CXXFLAGS 表⽰⽤于 C++ 编译器的选项。
这两个变量实际上涵盖了编译和汇编两个步骤。
CFLAGS: 指定头⽂件(.h⽂件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装⼀个包时会在安装路径下建⽴⼀个include⽬录,当安装过程中出现问题时,试着把以前安装的包的include⽬录加⼊到该变量中来。mysql下载libs包的网址
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 将会设置这个选项,链接时会有这个参数,编译出来的可执⾏程序的库⽂件搜索路径就得到扩展了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。