Perl社区依赖于MACOSX_DEPLOYMENT_TARGET=10.3
所有Perl版本,很长一段时间。但现在,使用El Capitan beta,it no longer works。似乎他们应该提高它,但是为了什么?有没有办法以编程方式将其设置为当前正在构建Perl的OS X版本所支持的最早版本?或者还有其他一些动态设置的方法吗?或者它必须是静态的并定期更新?如果是后者,它如何影响旧版OS X的构建?
答案 0 :(得分:2)
这应该是MACOSX_DEPLOYMENT_TARGET
中相当简单的更改,它会检查正在运行的OSX版本并相应地设置!important
。
Perl是一个开源项目,因此总是缩短开发人员的时间。如果您要为此制作一个补丁并将其提交给p5p,我相信非常感谢。
答案 1 :(得分:0)
接受@ Calle-Dybedahl的回答,因为它在技术上是正确的。 Perl 5核心黑客Jarkko Hietaniemi推了this solution,事实证明这比你一眼就看出的要复杂得多。他提出的基本配方是:
对于OS X 10.6或更高版本,请不要再使用
MACOSX_DEPLOYMENT_TARGET
, 工具链应该没有工作。到目前为止的部署目标 被硬连线到10.3。这个逻辑来自 RT#117433对于从10.3到10.5的OS X版本,没有变化,仍在使用
MACOSX_DEPLOYMENT_TARGET=10.3
用于链接。对于10.3之前的OS X版本,没有更改,仍未使用
MACOSX_DEPLOYMENT_TARGET=10.3
。新功能:始终将
-mmacosx-version-min
添加到ccflags
和ldflags
env var$MACOSX_DEPLOYMENT_TARGET
,如果设置的话。如果没有设置var, 从sw_vers(1)设置OS X版本的min。设置var 对于早期建造和包装Perl的人来说应该会变得很方便 OS X版本。