【问题标题】:How to tell tell the ./configure file where to take the dependencies from?如何告诉 ./configure 文件从哪里获取依赖项?
【发布时间】:2019-07-21 11:04:44
【问题描述】:

我想在本地文件夹中安装 Libav,为此我必须安装 yasm(我可以禁用依赖项,但我不想仅仅为了争论)。软件包的安装是通过“./configure”和“make”在终端中完成的(当我运行“./configure”时,我收到消息,yasm 丢失)。我如何告诉“./configure”从路径“./libs”中获取它的 yasm 依赖项(在父文件夹中有一个包含库的文件夹)。我应该修改makefile(如果是,我应该只将LDflags更改为什么?)还是在./configure命令中添加“--extra-ldflags="-L./libs"”? cflags 在这里有什么用?

【问题讨论】:

  • 我不能确切地知道你在做什么,但请注意尝试将两个不同的包解压到同一个目录是一个非常糟糕的主意:你说它应该在 "./libs " 这意味着它们在同一个目录中。无论如何,您应该运行configure --help 并查看有哪些选项可以让它找到库等的替代位置。甚至可能有一个特定的选项来定位yasm。您应该编辑 makefile,除非万不得已,因为下次运行 configure 时,您的更改将再次被覆盖。

标签: macos makefile dependencies libav yasm


【解决方案1】:

要让 autotools 的 configure 使用来自特定目录的依赖项,以下可能会或可能不会起作用,因为 configure 脚本可以以不同的方式编写:

  • --extra-ldflags(也应该有--extra-cflags)没问题,如果有的话;
  • 对于库依赖项,您可以将CFLAGS="-I<path>" CXXFLAGS="<same>" LDFLAGS="-L<path>" 添加到./configure 的环境或其命令行参数中;
  • 更简洁的方法:如果您为依赖项生成并安装了pkg-config 配置,则可以指定PKG_CONFIG_PATH。在交叉编译的特殊情况下,可以使用PKG_CONFIG_SYSROOT_DIR
  • 对于本地主机可执行文件,附加/前置到PATH

相关问题:https://unix.stackexchange.com/questions/19663/how-to-change-the-compiler-settings-with-automake

【讨论】:

    猜你喜欢
    • 2017-07-03
    • 2016-10-30
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    相关资源
    最近更新 更多