现在,我不得不将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;
}
我尝试的第二步是为iOS应用程序打开一个新项目,然后设置指向库文件的链接,还包括相应的"talk.h“头文件。但是,即使我成功地构建了库,头文件也会出现一些错误。
这些错误表明
我已经尝试将controller.m重命名为controller.mm,但它没有解决问题
如何导入用C++编写的头文件,以便在iOS上使用库?谢谢
发布于 2015-03-20 14:09:04
大致轮廓:
在Xcode中(从一个模板iOS应用程序项目(或现有的)开始:
Xcode将负责为您设置所有其他内容,包括编译器标志和头搜索路径。
发布于 2013-10-22 18:42:28
对于第1部分,C++编译得很好,我编写了一个简单的教程,http://tutorialsios.blogspot.com/2013/09/c-beginers-code-for-objective-c.html,这些代码是用Xcode编写的,并在终端中编译
#include "functionOverLoading.h"
int main(int argc, const char * argv[]) {
..
..
return 0;
}
$g++ functionOverLoading.cpp -o functionOverLoading $ ./functionOverLoading
发布于 2013-10-22 18:59:24
您需要添加C++标准库。
要做到这一点,请在项目中找到其他链接标记并添加-lstdc++
。
https://stackoverflow.com/questions/19531612
复制相似问题