微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在构建时解决符号大肠菌病

如何解决在构建时解决符号大肠菌病

我在C程序中有一些符号冲突,以前的搜索导致this objcopy,问题是我的工作流程是golang cgo,所以我不处理{{1 }}和.o(我知道我的lib的目标可能是被其他人使用,所以我无法拥有自定义的golang工作流程。)


我需要的更多信息: 我在go lib中有一堆函数来做各种事情,此代码自动生成的,无法预测,有时在构建管道中它们有时会与其他函数发生冲突(具有相同的名称),所以我希望所有C语言我的go lib函数中的函数重命名,这可以在生成时使用standart cgo进程(基本上首先使用gcc生成每个文件,然后将它们全部链接起来)发生,也可以在代码自动生成后发生(我想我可以运行预处理程序重命名了所有功能,并且在源代码中有调用,但是我找不到一个。)


我已经尝试过的东西: .a

Thisthis看起来非常有前途,但是无论如何,我都无法使它起作用:

#pragma extern_prefix

Shell输出

// test.c
#include <stdio.h>

#pragma extern_prefix "TestPrefix"

int test() {
    printf("Hello,World!\n");
    return 0;
}

#pragma extern_prefix ""

int main() {
   return test();
}

不同于我期望的$ gcc test.c -o test && ./test && nm -an test | grep test Hello,World! 0000000000000000 a test.c 0000000000001149 T test 符号没有像我期望的那样前缀(据我了解,该符号应为test)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。