【发布时间】:2018-05-02 20:32:42
【问题描述】:
在自制公式中指定 x11 依赖项的正确方法是什么? 默认的 superenv 从其参数中删除 /opt/X11/lib。
我正在为一个包编写一个公式,我可以使用通常的配置、make install 在自制程序之外构建它。
所以我有这个安装功能:
def install
ENV["PKG_CONFIG_PATH"] = "/usr/local/opt/qt/lib/pkgconfig"
# ENV["PATH"] = "/usr/local/bin:/usr/bin:/bin" <--- work around
Dir.chdir("codebase")
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"
system "make install"
end
得到回显的链接阶段显示
/bin/sh ../../../../libtool --tag=CXX --mode=link clang++ .... -I /opt/X11/include ..... -L/opt/X11/lib ...
但是链接失败了
ld: library not found for -lX11
如果我将它添加到类定义的顶部,则构建成功
env :std
或者,我可以在构建函数中设置 PATH 并且构建成功。
这是有道理的,因为在 brew install 的上下文中,/usr/local/Homebrew/Library/Homebrew/shims/super 出现在 PATH 的开头,并且该目录有一个 clang++其中包括剥离 /opt/X11 组件。
我认为这种行为是有充分理由的,并且很好奇指定 X11 库的最佳方法是什么。
【问题讨论】:
-
在公式
gv.rb中使用depends_on :x11怎么样? -
小写'x'是票。我正在尝试
depends_on :X11