gpt4 book ai didi

makefile - 如何使用相对rpath编译OpenSSL

转载 作者:行者123 更新时间:2023-12-03 16:14:58 25 4
gpt4 key购买 nike

我一直在尝试使用以下rpath编译openssl 1.0.0g:

$ORIGIN/../lib64

每次我 readelf -d apps/openssl时,根据我尝试的转义变体,都会得到如下结果:
\RIGIN/../lib64
RIGIN/../lib64
ORIGIN/../lib64

我想不使用诸如chrpath之类的外部工具来设置我的rpath。有可能吗?我基本上会接受任何不涉及使用诸如chrpath之类的外部工具的东西(尽管我已经做完了)。

理想情况下,我想通过在命令行(任何形式的 -Wl,-rpath,$ORIGIN/../lib64)上传递选项来做到这一点。

我不介意编辑生成的Makefile,这是我最后一次尝试的操作。如果我能得到它打印一个愚蠢的美元符号!!!我试过在BUILDENV =块下修改LIBRPATH,但是没有运气。到目前为止,我最好的成绩是:
LIBRPATH=$$'ORIGIN/../lib64 # result: /../lib64
LIBRPATH=$$$$'ORIGIN/../lib64 # result: 12345<pid>/../lib64

我已经阅读了与rpath相关的各种问题,并尝试了各种转义和引用技巧,但到目前为止没有任何效果!

最佳答案

在您的makefile中,尝试:

-Wl,-rpath,${ORIGIN}/../lib64

我假设 ORIGIN 是一个shell变量。

编辑

我刚刚找到了您问题的答案(最好迟到再也没有):
您需要防止make插值变量,为此,您需要使用$$(双美元符号):
-Wl,-rpath,'$$ORIGIN/../lib64'

我知道它有效,因为我已经用自己的应用程序对其进行了测试,请享受:)

关于makefile - 如何使用相对rpath编译OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9399677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com