Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建c++;带make for iOS的二进制文件_C++_Ios_Xcode_Makefile - Fatal编程技术网

C++ 创建c++;带make for iOS的二进制文件

C++ 创建c++;带make for iOS的二进制文件,c++,ios,xcode,makefile,C++,Ios,Xcode,Makefile,我正在尝试使用以iOS为目标平台的makefile创建二进制文件。但是,我只看到了使用macOS的makefile作为目标平台的选项。对于iOS,有没有办法做到这一点 背景:我正在尝试将谷歌的或工具(优化解算器)嵌入到iOS应用程序中。这些工具或工具是用C++编写的,需要一个make文件来编译。为了让它更复杂,我在应用程序中使用了Flutter。Flatter使用Xcode创建应用程序。由于这种外部构建控制,将C++代码与make文件集成似乎不太可能。所以我的计划是创建一个C++二进制框架,然后

我正在尝试使用以iOS为目标平台的makefile创建二进制文件。但是,我只看到了使用macOS的makefile作为目标平台的选项。对于iOS,有没有办法做到这一点


背景:我正在尝试将谷歌的或工具(优化解算器)嵌入到iOS应用程序中。这些工具或工具是用C++编写的,需要一个make文件来编译。为了让它更复杂,我在应用程序中使用了Flutter。Flatter使用Xcode创建应用程序。由于这种外部构建控制,将C++代码与make文件集成似乎不太可能。所以我的计划是创建一个C++二进制框架,然后我可以将它嵌入到XCODE中的项目中。但现在我一直在努力让iOS目标与make文件一起工作。有什么想法吗?

Make允许你做任何你想做的事情,只要你能在makefile中描述它。注意,制作不帮助你绕过任务的低级细节(为iOS构建C++代码),你必须自己去弄清楚。Make仅仅自动化了重复的任务

因此,棘手的部分是为iOS设置开发工作流。查找并安装iOS交叉编译工具链和库,提出项目结构(即,保存头文件和源文件的位置,二进制文件的位置),尝试编译并链接一个简单的“hello world”测试程序。要验证结果,请将测试二进制文件复制到iOS设备并运行它。一旦所有这些都清楚了,您就可以编写一个Makefile来自动化构建过程

如果您有一个针对PC或Mac平台的现有基于Makefile的源代码,并且您正试图在iOS设备上编译和运行它,那么您实际上是在移植这个项目。这可能比从头开始编写Makefile困难得多。您必须非常熟悉新的目标平台(iOS)及其开发工具;这个项目本身,当然,还有它自己


另请参见

谢谢您的回答。是的,我有一个基于Makefile的源代码。除了一些输入值和输出到终端之外,它没有任何i/o。这就是为什么我认为移植(C++代码)应该很容易。不幸的是,makefiles对我来说是新的,尽管我很久以前就做了。你是说,移植makefile还是移植源代码是痛苦的?如果是后者,您是否希望将变量作为输入和输出的解算器也是如此?根据您的第1段,如果不需要代码移植,我基本上需要在makefile中告诉您为iOS构建,而不是在Xcode IDE中吗?如果此应用程序主要处理数据而不访问系统库,那么这是一个好的开始。听起来它相当独立于目标平台,因此移植代码本身可能不需要太多工作。至于makefile,它只是一个脚本。它没有目标平台的概念。作者必须编写逻辑,以便为每个受支持的平台执行正确的操作。除非有人(大概是你)明确告诉它该做什么,否则你不能告诉它为iOS构建。这是从安装iOS C++工具链和库开始的,然后在MaFe文件中使用它们。当移植一个MaMo文件到一个非常类似的平台到一个现有的平台时,你可能只需添加正确的编译器命令(可能包括头文件或库的包含路径)。但我从未使用过iOS,所以我在那里没有经验。