要在XCode中使用的C ++静态库

时间:2011-06-01 04:56:57

标签: iphone c++ objective-c static-libraries

这可能不是一个简单的问题,所以我不是在寻找一个明确的答案,只是一些指示让我朝着正确的方向前进。

我对C / C ++没有任何经验,但对Objective-C有很好的了解。我也不太了解不同的编译器和架构,所以如果我说的是愚蠢的话,请你好一点:)

我有一些MatLab代码需要移植到Objective-C才能在iPhone应用程序上运行。完成这项工作的第一个尝试路径是检查MatLab是否可以将代码导出为我可以在Objective-C代码中调用的静态C / C ++库。

这似乎是这种情况,但我不完全确定接下来该做什么,以及在MatLab端编译库时需要记住的事项(即架构,兼容性,PC与Mac等)。

我已经提供了.DLL和.LIB文件,我认为这些文件是Windows编译的,所以它们对我没用,这是正确的吗?通过使用以前的静态库,我可以看到它们都有.a扩展名 - 我需要做些什么才能获得与iPhone体系结构兼容的文件?

一旦我编译了库,如何在我的项目中导入和使用它?我能否直接从我的代码中调用公共方法?

我还需要了解或了解哪些内容?

非常感谢任何帮助!

谢谢,

罗格

1 个答案:

答案 0 :(得分:1)

静态库包含为某些特定操作系统和平台量身定制的二进制代码。这意味着它将使用OS在内部获取内存(如果它使用动态内存)或执行任何其他特定于操作系统的操作(日志记录,输出)。

即使生成的代码完全与操作系统无关(基本数学可以在没有OS支持的情况下实现),平台完全不同,matlab将为intel平台生成代码,而iPhone在ARM体系结构中运行,具有不同的指令集调用约定......

除非matlab能够为iPhone生成静态库,或者至少为ARM平台生成静态库并使其与操作系统无关,否则你运气不佳。