.configure和make:输出文件名是否有一个共同的标志,以及-prefix的作用是什么?

问题描述 投票:1回答:1

我时常需要直接从源码中编译我所需要的工具和应用程序,其中大部分(我使用的是linux),需要运行configure-script:-prefix。其中大部分(我使用的是linux)都需要运行一个configure-script。

./configure

然后..:

make install

我基本上明白这些命令的作用,但有些细节我还不太清楚。

这两个步骤通常会导致最后创建一个二进制文件,位于.src目录下(但并不总是)。我还注意到,我可以在configure脚本中使用"--prefix=path "来设置最终安装包的前缀目录(当运行:make install)。

  1. 这是所有或大多数configure脚本都遵循的规范或惯例吗?

我还注意到,很多时候,当运行make install时,会在usrlocalbin(或类似的)中创建一个指向安装位置的二进制文件的符号链接。

  1. 配置脚本是否也有一个共同的标志,为这个符号链接选择一个不同的名字?
  2. 是否有一个共同的标志来定义二进制的输出名称?
linux makefile configure
1个回答
2
投票

--prefix=/path 重新定位安装路径的许多组件。 通常情况下 prefix 的默认值为 /usr/local导致二进制可执行文件被安装到 ${prefix}/bin. 如果你想让它们安装在系统路径中,你可以将其设置为 --prefix=/usr 然后可执行文件会进入 /usr/bin

这符合Automake Autoconf包装惯例,详见《Automake Autoconf包装惯例》。GNU编码标准.

至于symlink,很有可能它遵循的是安装程序中固定的命名模式,要么是代码,要么是链接的库名。 通常情况下,链接库的名称是根据加载它们的程序来选择的,而不是根据它们所链接的库来选择的,所以改变名称是不可取的。 由于你可能是在安装到了 /usr/local/bin,而且这些库也可能安装到一个 /usr/local/lib<something> 的路径。 如果没有进一步的细节(第二个问题应该是第二篇文章),很难评论。 我想说的是,改名可能对可执行文件中的 /usr/local/bin

是的,您可以使用以下命令更改可执行文件的输出名称 --program-prefix=value 命令,在我的例子中,它将安装 valuecp 而不是 cp.

© www.soinside.com 2019 - 2024. All rights reserved.