当前位置: 技术问答>linux和unix
关于库的动态链接
来源: 互联网 发布时间:2015-02-11
本文导语: 有一个关于动态链接的问题: 比如我安装了gtk,安装到/usr/local/lib下. ./gtk-config --cflags的结果是: -I/usr/local/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include ./gtk-config --libs的结果是: -L/usr/local/lib -L/usr/X...
有一个关于动态链接的问题:
比如我安装了gtk,安装到/usr/local/lib下.
./gtk-config --cflags的结果是:
-I/usr/local/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include
./gtk-config --libs的结果是:
-L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -L/usr/lib -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm
我做了一个gtk程序,编译和链接时指定了`gtk-config --cflags`和`gtk-config --libs`参数.我的理解是链接程序会到这两个参数指定的位子去动态链接需要的库.然后我把做好的程序拿到另一台机子上运行,这台机子的gtk的安装位子可能和我的不一样,比如在usr/lib下,那么我的程序在这台机子上运行时怎么能找到需要的库呢?两台机子上的gtk库的位子不一样呀.
比如我安装了gtk,安装到/usr/local/lib下.
./gtk-config --cflags的结果是:
-I/usr/local/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include
./gtk-config --libs的结果是:
-L/usr/local/lib -L/usr/X11R6/lib -lgtk -lgdk -L/usr/lib -rdynamic -lgmodule -lglib -ldl -lXext -lX11 -lm
我做了一个gtk程序,编译和链接时指定了`gtk-config --cflags`和`gtk-config --libs`参数.我的理解是链接程序会到这两个参数指定的位子去动态链接需要的库.然后我把做好的程序拿到另一台机子上运行,这台机子的gtk的安装位子可能和我的不一样,比如在usr/lib下,那么我的程序在这台机子上运行时怎么能找到需要的库呢?两台机子上的gtk库的位子不一样呀.
|
不能运行而已,所以吗,你要么SRC发布,要么就要自己写安装程序来做检测,如果version不对还要ln相应的version一个。