2011-06-01 132 views
2

这可能不是一个简单的问题,所以我不是在寻找明确的答案,而只是一些指向正确的方向。我对C/C++完全没有经验,但对Objective-C有很好的了解。我也不太了解不同的编译器和体系结构,所以如果我说的很愚蠢,请保持良好态度:)XCode中使用的C++静态库

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

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

我已经提供了一个.DLL和.LIB文件,我相信这些文件是Windows编译的,所以它们不会对我有用,这是正确的吗?从以前的静态库的工作,我可以看到他们都有一个.a扩展名 - 我需要做什么来获得一个与iPhone体系结构兼容的?

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

我还需要知道或意识到什么?

任何帮助非常感谢!

感谢,

罗格

+0

这听起来像你确实有Windows二进制文件。除非您准备深入研究与PC兼容的机器代码/汇编程序,否则它们对您几乎没有帮助。你真的需要源代码才能开始。 – 2011-06-01 05:40:58

回答

1

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

即使生成的代码完全与操作系统无关(基础数学可以在没有操作系统支持的情况下实现),平台完全不同,matlab将生成代码用于英特尔平台,iPhone运行在ARM架构中,不同的指令集调用约定...

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

+0

感谢您的回复David,我很感激。 – Rog 2011-06-02 23:17:43