gpt4 book ai didi

c++ - 有没有办法在输出二进制文件中存储 clang 编译时标志?

转载 作者:IT老高 更新时间:2023-10-28 23:02:27 24 4
gpt4 key购买 nike

使用 clang 时,有没有办法将编译时标志存储在输出二进制文件中?

例如运行后:

clang -O3 -c main.c

生成的 main.o 文件应该在某处包含 -O3

gcc has -frecord-gcc-switches但我找不到clang的等价物。

最佳答案

正如 ecatmur 已经在评论中暗示的那样。目前不支持此功能,如错误 https://llvm.org/bugs/show_bug.cgi?id=16291 中所述。 .

但是,当该功能不可用时,作为一种解决方法,我建议让您的构建过程使用 clang 的 -D 参数在程序内定义一个宏。例如,假设您从 bash 脚本中调用它(调整到您使用的任何构建工具):

CLANG_ARGS='-O3 -c main.c'
clang $CLANG_ARGS -D CLANG_ARGS="\"${CLANG_ARGS}\""

然后在您的 C 或 C++ 程序中添加以下内容:

const char clangArgs[] = CLANG_ARGS;

当使用 -V--version 调用时,您可以使用调试器或类似的工具进行检索,甚至可以添加一些代码从程序中打印出来切换。

关于c++ - 有没有办法在输出二进制文件中存储 clang 编译时标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38719560/

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