如何解决在构建时解决符号大肠菌病
我在C程序中有一些符号冲突,以前的搜索导致this objcopy
,问题是我的工作流程是golang cgo,所以我不处理{{1 }}和.o
(我知道我的lib的目标可能是被其他人使用,所以我无法拥有自定义的golang工作流程。)
我需要的更多信息: 我在go lib中有一堆函数来做各种事情,此代码是自动生成的,无法预测,有时在构建管道中它们有时会与其他函数发生冲突(具有相同的名称),所以我希望所有C语言我的go lib函数中的函数要重命名,这可以在生成时使用standart cgo进程(基本上首先使用gcc生成每个文件,然后将它们全部链接起来)发生,也可以在代码自动生成后发生(我想我可以运行预处理程序重命名了所有功能,并且在源代码中有调用,但是我找不到一个。)
我已经尝试过的东西:
.a
This和this看起来非常有前途,但是无论如何,我都无法使它起作用:
#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 举报,一经查实,本站将立刻删除。