如何构建C++编写的图书馆及其在iOS中的应用 我现在必须将C++代码移植到iOS,试图通过原始C++代码构建静态库,并在iOS上加载库。因为原始代码很重,所以我开始了一个小测试来验证我的步骤是否有效
首先,我需要构建library.a,它打印一些字符串。我编译以下代码并生成一个库.a文件如何构建C++编写的图书馆及其在iOS中的应用 我现在必须将C++代码移植到iOS,试图通过原始C++代码构建静态库,并在iOS上加载库。因为原始代码很重,所以我开始了一个小测试来验证我的步骤是否有效,c++,ios,objective-c,static-libraries,C++,Ios,Objective C,Static Libraries,首先,我需要构建library.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 &
//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头文件。
但是,即使我成功构建了库,头文件上也会发生一些错误
错误表明
找不到iostream文件
未知类型名称“类”;你是说“课堂”吗?
任何其他错误。。。
我尝试将controller.m重命名为controller.mm,但它无法解决问题
如何导入C++编写的头文件,用于在iOS上使用库?
感谢 < P>第一部分C++与Xcode的编译 我写了一个简单的教程 这些代码使用Xcode编写,并在终端中编译
#include "functionOverLoading.h"
int main(int argc, const char * argv[]) {
..
..
return 0;
}
$g++functionOverLoading.cpp–o functionOverLoading
$/函数重载
需要添加C++标准库。 为此,请在项目中找到其他链接器标志并添加-lstdc++。大致轮廓: 在Xcode中,从一个模板iOS应用程序项目或现有项目开始: 创建新的静态库目标:文件->新建->目标。。。。选择框架或库,然后选择静态库 添加库源代码:将库源代码拖动到Xcode项目中。在出现的对话框中,选择上面创建的生成目标。 将项目相关性添加到库:在项目导航中选择项目,从目标中选择iOS构建目标。选择Build Phases选项卡,然后在窗口中的Target Dependencies下,单击+符号。将打开一个工作表,选择要添加的项目,并且库目标应位于列表的顶部。 在iOS目标中包含库:在“将二进制文件链接到库”下,单击+。库a.a文件应位于列表的顶部。 与libc++的链接:如上所述。从列表中选择libc++。 通过将扩展名从.m更改为.mm,为需要包含库头的任何源代码文件启用Objective-C++编译 构建iOS应用程序目标。
Xcode将负责为您设置所有其他内容,包括编译器标志和头搜索路径但是我想要从C++代码构建一个库,然后在iOS上使用这个库,它需要加载库并包含IOS项目中的开放接口头。在XcodeHow中不运行普通C++代码来添加?在哪里添加?