我经常需要为许多不同的架构构建公共链接库,如zlib、libpng、jpeglib、freetype等。我更喜欢树外构建,比如:

mkdir build_linux_x64
cd build_linux_x64
../configure
make

这通常工作得很好,但现在我已经读到,只有满足以下条件时,这才能工作:“必须为树外生成启用项目,如果使用make,则通常使用vpath用户”(Source
这就引出了一个问题:如何判断项目是否启用了树外生成?如果项目没有启用树外生成,configuremake是否会失败,或者我应该如何判断?

最佳答案

如果树外构建可以工作,那么您知道它可以工作:)。当他们说“启用”时,并不意味着项目必须打开某些开关或配置选项。它们意味着包的作者需要编写自己的Makefile.am文件(如果不使用automake,则编写Makefile.in文件)才能在树外运行时正常工作。除了尝试之外,无法知道这些文件是否正确写入。
如果你尝试了它,但它不起作用,你应该提出一个错误的包。
请注意,使用autotools创建源分发包的标准方法强制使用树外生成,因此如果他们使用标准方法创建源分发包,那么它肯定会正确地从树外生成。

关于linux - 如何判断是否配置并支持树外构建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46118382/

10-15 13:01