我正在尝试在主目录中编译 Solaris 下的程序。
我有过简单的安装经验,只需
$> CD src
$> ./configure --prefix=/home/peter
$> make
$> make install
但是,随着程序的复杂度增加,并且依赖于特殊库,我该如何让系统在我的主目录中查找这些程序?我该如何将它们编译到我的主目录中?
答案1
当我交叉编译应用程序时,我必须做类似的事情。如果 ./configure 支持它,您可以使用 --help 检查,您可以执行以下操作
./configure --extra-ldflags=-L/root/Installs/ffmpeg/forWin/usr/lib --extra-cflags=-I/root/Installs/ffmpeg/forWin/usr/include
有一个用于库的条目,还有一个用于包含的条目,但是,总是有一种老式的方法,只需将其附加在 configure 或 make 之前即可
LDFLAGS='-L/root/Installs/ffmpeg/forWin/usr/lib' CFLAGS='-I/root/Installs/ffmpeg/forWin/usr/include' ./configure
LDFLAGS='-L/root/Installs/ffmpeg/forWin/usr/lib' CFLAGS='-I/root/Installs/ffmpeg/forWin/usr/include' make
对于 make,我认为它们可以在之前或之后指定,但是不要引用我的话。
答案2
这取决于。
如果您正在构建使用 的软件configure
,大多数configure
脚本将允许您指定第三方库的路径。执行configure --help
并查找 --with-feature=/path/to/software。
正如其他答案所提到的,configure
其他脚本倾向于查看环境变量CFLAGS
LDFLAGS
和LIBS
。您可以使用 -I/include/paths 和 -L/library/paths 设置 CFLAGS,这可能会有所帮助。
最糟糕的情况是,您可能需要编辑 Makefile 来重置这些路径。
如果您希望软件位于某个位置,configure
脚本往往会使用 --prefix= 参数来指定安装目录。或者您可能需要编辑 Makefile。