该脚本./configure
接受3个选项--build
,--host
和--target
.我混淆了他们的角色.它们的区别和语义是什么?
每次从源代码编译时,都会经历相同的3个步骤:
$ ./configure
$ make
$ make install
Run Code Online (Sandbox Code Playgroud)
我理解,将安装过程划分为不同的步骤是有道理的,但我不明白,为什么这个星球上的每个编码器必须一次又一次地编写相同的三个命令才能完成一个单独的工作.从我的角度来看./install.sh
,使用包含以下文本的源代码自动交付脚本是完全合理的:
#!/bin/sh
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
人们为什么要分开做3个步骤?
我正在尝试将软件安装到特定目录.我找到了几种方法,但不确定它们之间有什么区别.
./configure --prefix=***
make install DESTDIR=***
make install prefix=***
./configure --prefix=***
我对这四个的功能感到困惑.他们实现了同样的目标吗?
我需要一个地方在linux盒子里安装库我没有su访问权限.我正在使用〜/ local [/ bin,/ lib,/ include],但我不知道如何告诉./configure在那里寻找库(特别是,我正在尝试编译emacs,这需要libgif ,这不是我的发行版).
我尝试添加
export PATH=$PATH:~/local/bin
export LD_LIBRARY_PATH=~/local/lib
export C_INCLUDE_PATH=~/local/include
export CPLUS_INCLUDE_PATH=~/local/include
Run Code Online (Sandbox Code Playgroud)
到.bashrc但它似乎不起作用.
这可能听起来像一个非常通用的问题,但在这里.
我有一个要求,以创建我的应用程序配置脚本,将生成的这种配置的结果makefile
(基本configure
,make
,make install
).我的问题是,我从哪里开始构建这个?我可以效仿一个例子吗?
为什么有必要虽然在makefile中指定了所有内容?
我已经看到,在Linux中安装新软件时,我总是先使用configure
它.
但有时候我们需要像今天一样安装各种选项来安装lxml
:
./configure --with-python=/opt/python27/bin/python
--prefix=/usr/local
--with-libxml-prefix=/usr/local
--with-libxml-include-prefix=/usr/local/include
--with-libxml-libs-prefix=/usr/local/lib
Run Code Online (Sandbox Code Playgroud)
现在我想知道该人如何知道--with-python
可以使用哪种类型的参数 ?
我的意思是:
所有软件包中的参数是相同的还是软件与软件不同?
我甚至试图阅读文档,但没有人提到这些参数.
我使用的是64位系统但需要一组32位二进制文件.我必须将哪些选项传递给configure脚本才能生成32位/ x86 makefile?
我正在尝试在基于arm的Linux机器上编译Python 3.6,
./configure
输出:
如果您想要一个激活所有优化的版本构建(LTO,PGO等),请运行
./configure --enable-optimizations
.
怎么--enable-optimizations
办?
忍受我,这个不太容易解释......
我想configure
,make
和make install
Xfce的到我的buildroot的build目录.配置我正在使用时
--prefix=/home/me/somefolder/mybuild/output/target
Run Code Online (Sandbox Code Playgroud)
所以它构建到正确的文件夹,但是当它被压缩和运行时,我从各种配置文件中获取错误,在那里它正在寻找文件
/home/me/somefolder/mybuild/output/target
Run Code Online (Sandbox Code Playgroud)
(当然不存在.)
如何设置要构建的文件夹,并为配置文件设置不同的根目录?