gpt4 book ai didi

command-line - 如何使用 $ORIGIN 获取 RPATH 以在 Code::Blocks GCC 上工作?

转载 作者:行者123 更新时间:2023-12-03 13:41:16 26 4
gpt4 key购买 nike

我正在尝试将包含特殊字符串 $ORIGIN 的 RPATH 链接到使用 GCC 和 Code::Blocks IDE 构建的可执行文件中。我已经指定

-Wl,-R$ORIGIN

在项目的链接器选项中,但是到 GCC 的命令行输出是错误的(为了清楚起见已删除):
g++ -Wl,-R

为 Code::Blocks 指定此参数的正确方法是什么?

最佳答案

决定制作 token $ORIGIN 的人是一个邪恶的 SCSS ,他应该在程序员 hell 中占有一席之地。由于 '$' 是 bash 和其他脚本语言(如 make)的特殊字符,因此除非小心转义,否则它会搞砸一切。更糟糕的是,根据您使用的构建环境,如何正确逃脱的细节可能会发生变化。

在 bash 中,您需要在 $ 前面加上一个反斜杠:

-Wl,-R\$ORIGIN

Code::Blocks 显然也将 $ 视为特殊的。然后,无论子进程 Controller Code::Blocks 发送命令以将反斜杠视为特殊的。因此,反斜杠和 $ 都需要加倍才能正确转义。因此,在 Code::Blocks 链接器设置中,您需要指定:
-Wl,-R\\$$ORIGIN

...输出:
-Wl,-R\\$ORIGIN

...到构建日志,但实际上发送了 shell:
-Wl,-R\$ORIGIN

...如上所述会产生所需的结果。

多么痛苦。

关于command-line - 如何使用 $ORIGIN 获取 RPATH 以在 Code::Blocks GCC 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230364/

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