将少量 C 源文件集成到 Objective-C iOS 项目时出现链接错误。
C 文件是由另一位在 c 项目和 python 项目中成功使用该代码的开发人员提供给我的。
当我将 c 源代码添加到 XCode 项目中时,代码可以编译,但是在目标 c 文件中添加代码以引用 C 代码后出现链接错误。对于 C 代码中的变量,我得到“重复符号错误”。这是目标 c 代码具有 .m 扩展名的时候。
当我将目标 c 文件更改为 .mm 扩展名时,我从目标 c 代码调用的 C 函数出现“未找到体系结构 i386 的符号”错误。
论坛上有很多关于C和Objective C的问题,我还没有找到解决办法。有什么快速的检查吗?
代码片段:
File: res.h
float Max_Std_Amp = 50;
void RD_Dispose(void);
File: res.c
void RD_Dispose(void) {
Max_Std_Amp = 0;
}
File: Import.mm
#import "res.h"
void process(UInt32* data, UInt32 dataLength)
{
RD_Dispose();
}
链接错误:
当 Import.m 具有 .m 扩展名时:
duplicate symbol _Max_Std_Amp in:
/Users/dayhacker/Library/Developer/Xcode/DerivedData/My_Project-dbvpktweqzliaefgbqbebtdgyrey/Build/Intermediates/My Project.build/Debug-iphonesimulator/Respitory Rate.build/Objects-normal/i386/Import.o
当 Import.mm 具有 .mm 扩展名时:
Undefined symbols for architecture i386:
"RD_Dispose()", referenced from:
process(unsigned long*, unsigned long) in Import.o