在hpux上,我需要使用+h链接选项来获取Boost1.39.0共享库以包含正确的路径。
-Wl,+h$(SPACE)-Wl,$(<[-1]:D=)
(从
http://www.nabble.com/HPUX-aCC:-Howto-avoid-building-boost-libraries-containing-absolute-library-path-references-when-calling-bjam-install-td17619511.html
)
我已经测试过了,通过黑客攻击gcc.jam工具集文件:
796c796
< "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
---
> "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,+h$(SPACE)-Wl,$(<[-1]:D=) -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
但现在我想要一个永久的解决方案,我不知道怎么解决。
首先,我尝试在
actions link.dll
节,但该节包含shell命令。
然后我尝试将额外的部分添加到这些目标的选项变量中。但这似乎对链接没有任何影响。
最后,我尝试创建一个单独的工具集作为
gcc.jam
(
hpuxgcc.jam
但我根本没法让它发挥作用。我想还有更多的地方需要更改变量名,但是jam语法超出了我的理解范围。
有没有人对如何让这个工作有更好的想法?或者我应该在构建Boost之前把这个黑客版本转换成一个补丁吗?当然有更好的方法吗?
你猜问题是:
a)如何(以平台为条件)将文本添加到gcc.jam中的链接器命令中?
或:
b)如何根据
果酱
?
更容易…