C ++链接错误在尝试输入.a时发生Mangling

时间:2012-05-01 20:57:49

标签: c++ ios4

已经使用了一些c / c ++代码已经有一段时间了,它在项目中运行良好。现在尝试从代码中创建.a,除了一个项目外,一切都很好。

有一个c例程,我们称之为

void init(sometype *)

这在XCODE中被标记为c ++文件,它有一个.h文件

在那里我们有

#if defined(__cplusplus)
extern "C"
{
#endif

void init(sometype *);

#if defined(__cplusplus)
}
#endif

当将所有链接作为一个应用程序

时,从目标C调用时,所有这些链接都会找到

当这段代码包含在.a中,然后尝试从我们得到的单独项目链接....

Undefined symbols for architecture armv6:
  "__Znam", referenced from:
      _init in libMy.a(Objectfile.o)
ld: symbol(s) not found for architecture armv6
clang: error: linker command failed with exit code 1 (use -v to see invocation)

看起来我们正在获得一些C ++ init例程?链接查找时的.o看起来与编译.a时的相同(__Znam就在那里)。

那么lib缺少什么????

将进行更多挖掘,尝试找出幕后没有包含的内容。

----------新信息------------

看起来问题是“new”关键字在这个例程中不起作用,这可能是没有正确链接的例程。

这样的一行......

var->output = new Int32*[10];

工作不正常。 .....

0 个答案:

没有答案