我有两个工作编译器,clang在一个Mac可以定位的编译器iPhone和clang一个iPhone也可以定位的编译器上iPhone。通常两者都工作得很好,生成二进制文件和库。上制作的库Mac可以链接上iPhone。但现在我面临一个奇怪的问题:尝试在 iPhone 上链接到在 Mac 上创建的库时,库没有链接。
Undefined symbols:
"__Z7JS_Initji", referenced from:
_main in test-CgDtHX.o
这是对 JS_Init 的调用,它被定义为以不同方式扩展的宏。
iphone-clang将其扩展为:
extern JSRuntime * JS_Init(uint32_t maxbytes, int);
mac-clang将扩展为:
extern JSRuntime * JS_Init(uint32_t maxbytes, JSUseHelperThreads useHelperThreads);
我不确定宏扩展是否是链接失败的原因。
ji好的,现在我的问题是,到底是什么Z7意思 __Z7JS_Initji?我在哪里可以找到显示 和 之间对应关系的argument types表格mangling ids?这必须是ld文档,但我找不到它。主要是因为我不知道这方面的好查询词。