Compilation PKG_CONFIG_PATH变量,如何在编译RRDtool时设置LDFLAGS和CPPFLAGS
任务是在Red Hat derivate上安装rrdtool,禁止使用yum或up2date软件包。将rrdtool的所有依赖项从源代码编译到 单独目录: /apps/run/separare_文件夹 基本上我所有的都是这样的:Compilation PKG_CONFIG_PATH变量,如何在编译RRDtool时设置LDFLAGS和CPPFLAGS,compilation,Compilation,任务是在Red Hat derivate上安装rrdtool,禁止使用yum或up2date软件包。将rrdtool的所有依赖项从源代码编译到 单独目录: /apps/run/separare_文件夹 基本上我所有的都是这样的: ls cairo glib pango pixman -- pwd /apps/run export LD_LIBRARY_PATH=/apps/run/glib/lib;export LD_LIBRARY_PATH=/ap
ls
cairo glib pango pixman
--
pwd
/apps/run
export LD_LIBRARY_PATH=/apps/run/glib/lib;export LD_LIBRARY_PATH=/apps/run//apps/run/cairo/lib
编译四个依赖项后,rrdtool在./configure--prefix=/apps/run/rrdtool期间抱怨
编译器找不到libs[因为我将它们编译到单独的文件夹中,而不是标准文件夹,因为这是禁止的]
所有警告如下:
我确实有所有丢失的库,但需要告诉编译器如何找到它们是一件非常痛苦的事情。例如,缺少的glib-2.0如下所示:
pwd
/apps/run/glib/lib
ls -la
total 2300
drwxr-xr-x 4 root root 4096 May 3 08:18 .
drwxr-xr-x 6 root root 4096 May 3 08:17 ..
drwxr-xr-x 3 root root 4096 May 3 08:17 glib-2.0
-rwxr-xr-x 1 root root 928 May 3 08:18 libgio-2.0.la
lrwxrwxrwx 1 root root 19 May 3 08:18 libgio-2.0.so -> libgio-2.0.so.0.0.0
lrwxrwxrwx 1 root root 19 May 3 08:18 libgio-2.0.so.0 -> libgio-2.0.so.0.0.0
-rwxr-xr-x 1 root root 712052 May 3 08:18 libgio-2.0.so.0.0.0
-rwxr-xr-x 1 root root 830 May 3 08:17 libglib-2.0.la
lrwxrwxrwx 1 root root 23 May 3 08:17 libglib-2.0.so -> libglib-2.0.so.0.1504.0
lrwxrwxrwx 1 root root 23 May 3 08:17 libglib-2.0.so.0 -> libglib-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 1168721 May 3 08:17 libglib-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 887 May 3 08:18 libgmodule-2.0.la
lrwxrwxrwx 1 root root 26 May 3 08:18 libgmodule-2.0.so -> libgmodule-2.0.so.0.1504.0
lrwxrwxrwx 1 root root 26 May 3 08:18 libgmodule-2.0.so.0 -> libgmodule-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 16107 May 3 08:18 libgmodule-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 882 May 3 08:18 libgobject-2.0.la
lrwxrwxrwx 1 root root 26 May 3 08:18 libgobject-2.0.so -> libgobject-2.0.so.0.1504.0
lrwxrwxrwx 1 root root 26 May 3 08:18 libgobject-2.0.so.0 -> libgobject-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 378273 May 3 08:18 libgobject-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 897 May 3 08:18 libgthread-2.0.la
lrwxrwxrwx 1 root root 26 May 3 08:18 libgthread-2.0.so -> libgthread-2.0.so.0.1504.0
lrwxrwxrwx 1 root root 26 May 3 08:18 libgthread-2.0.so.0 -> libgthread-2.0.so.0.1504.0
-rwxr-xr-x 1 root root 24126 May 3 08:18 libgthread-2.0.so.0.1504.0
drwxr-xr-x 2 root root 4096 May 3 08:17 pkgconfig
有很多很好的建议,但不幸的是我无法理解:
- 您可能需要将PKG_CONFIG_PATH变量设置为指向其位置
- 也许您需要适当地设置LDFLAGS和CPPFLAGS,以便编译器和链接器可以找到libglib-2.0及其头文件
ls
cairo glib pango pixman
--
pwd
/apps/run
export LD_LIBRARY_PATH=/apps/run/glib/lib;export LD_LIBRARY_PATH=/apps/run//apps/run/cairo/lib
但不起作用。
也不确定这是否足够,因为有关于适当设置LDFLAGS和CPPFLAGS的建议。
我试过这个:
export LDFLAGS='-L/apps/run/cairo/libs'
但这似乎并不正确。或者指定LDFLAGS和CPPFLAGS作为./configure的一部分?
语法应该是什么?请提供建议,寻找一般的方法,但不能适应我的环境。Thx要设置路径,例如
PKG\u CONFIG\u PATH
的LD\u LIBRARY\u PATH
,您应该使用单个导出
,并使用:
分隔路径。例如:
export-PKG\u-CONFIG\u-PATH=/my/PATH:/my/other/PATH:/yet/other/PATH
如您在LD\u LIBRARY\u PATH
中所示,依次运行多个导出将覆盖它们,即只保留最后一个导出。通常,明智的做法是始终包含当前值(如果为空则可以):
export-PKG\u-CONFIG\u-PATH=/my/PATH:/my/other/PATH:/yet/other/PATH:$PKG\u-CONFIG\u-PATH
尝试在系统上查找cairo png.pc
文件,然后将PKG\u CONFIG\u PATH
设置为包含该文件的目录
应该没有必要去摆弄LDFLAGS
的LD\u LIBRARY\u路径,pkgconfig.pc
文件应该为您处理这些