如何构建C++编写的库并在iOS中使用

Kua*_* Wu 6 c++ objective-c static-libraries ios

我现在必须将C++代码移植到iOS,尝试通过原始C++代码构建静态库并在iOS上加载库.因为原始代码很重,所以我开始一个小测试来验证我的步骤是否可行.

首先,我需要构建库(.a),它打印一些字符串.我编译以下代码并生成一个库(.a)文件

//talk.h
...
#include <iostream>
class Talk {
    Talk();
    void printHello();
    void printWord(char*);
};


//talk.cpp
#include "talk.h"
using namespace std;
void Talk::printHello() {
    cout << "Hello World";
}
void Talk::printWord(char* word) {
    cout << "Hello" << word;
}
Run Code Online (Sandbox Code Playgroud)

我尝试的第二步是为iOS应用程序打开一个新项目,然后设置链接到库文件,还包括相应的"talk.h"头文件.但是,即使我成功构建库,头文件也会发生一些错误.

错误表明了这一点

  1. 找不到"iostream"文件
  2. "未知的类型名称'类';你的意思是'类'?
  3. 任何其他错误......

我试图将controller.m重命名为controller.mm,但它不能解决问题

如何导入用C++编写的头文件以便在iOS上使用库?谢谢

Bis*_*ire 0

对于第 1 部分,C++ 可以通过 Xcode 很好地编译 \n我写了一个简单的教程 \n http://tutorialsios.blogspot.com/2013/09/c-beginers-code-for-objective-c.html \n这些代码是编写的使用 Xcode 并在终端中编译

\n\n
#include "functionOverLoading.h"\nint main(int argc, const char * argv[]) {\n..\n..\n       return 0;\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

$g++ functionOverLoading.cpp \xe2\x80\x93o functionOverLoading

\n\n

$ ./functionOverLoading

\n
\n