在自制软件公式中指定x11依赖项的正确方法是什么? 默认的superenv从其参数中删除/ opt / X11 / lib。
我正在编写一个程序包的公式,我可以使用通常的configure,make install在homebrew之外构建。
所以我有这个安装功能:
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库的最佳方法是什么。
答案 0 :(得分:0)
在编写Hombrew公式时,了解如何做某事的最简单方法是查看现有公式。对于您的情况,您可以根据X11查看MuPDF
轻量级PDF和XPS查看器。在其公式中,您将找到解决方案:
draw.rectangle(centerx, centery, width, height, angle, value, 'filled')