windows下关于Objective-C开发环境的配置

最近IOS一直很火,也想学习以以下OC开发,一般装个虚拟机,然后装个mac,我相信大多数人的机子跑不起来或者很卡,所以之前借鉴了一个文章,就是关于在windows下配置OC开发环境,这里我把自己的安装说一下,顺便以后查阅的时候方便查找。

1.首先要下载这4个东西:http://www.gnu.org/software/gnustep/experience/Windows.html

2.然后还有codeblocks:http://www.codeblocks.org/downloads/binaries

3.下面就是开始配置编译器。开启codeblocks后

进入Settings->Compiler and debugger...,选择GNU GCC Compiler编译器,按“Copy”按钮,并重新命名为GNUstep MinGW Compiler并保存。

codeblocks:windows下关于Objective-C开发环境的配置
可能会有疑问为什么copy,实际上就是新建了一个编译器。没什么意思。

4,之后进入Other Options 分页,录入:

-fconstant-string-class=NSConstantString -std=c99 

codeblocks:windows下关于Objective-C开发环境的配置

5,连接器设置 Linker stettings

在连接库(Link Libraries)中添加两个文件,如图。

它们在C:\IOS开发\GNUstep\GNUstep\System\Library\Libraries文件夹里找到(在自己的GNUstep安装路径中找。)

libgnustep-base.dll.a

libobjc.dll.a

codeblocks:windows下关于Objective-C开发环境的配置

6,指定搜索目录Search directories

Compiler(编译器)设置为C:\IOS开发\GNUstep\GNUstep\System\Library\Headers;

codeblocks:windows下关于Objective-C开发环境的配置

Linker(连接器)设置为C:\IOS开发\GNUstep\GNUstep\System\Library\Libraries;

codeblocks:windows下关于Objective-C开发环境的配置

Toolchain里面设置为:C:\IOS开发\GNUstep(设置为GNUstep路径)

这一步网上好多blog中都未涉及,如果没有设置可能会引起在run时会出现error:no such file or ...后面这个词记不清了。)

codeblocks:windows下关于Objective-C开发环境的配置

7.添加Objective-C文件类型支持

 1)进入Settings->Environment...选择 Files extension handling 添加*.m。如图:

codeblocks:windows下关于Objective-C开发环境的配置

 2) 进入 Project->Project tree->Edit file types & categories... ,在Sources下面添加 *.m 到文件类型列表中。如图:

 codeblocks:windows下关于Objective-C开发环境的配置
位置放前后无所谓。

 3) 进入 Settings->Editor...,选择 Syntax highlighting,点击“Filemasks....”按钮,在弹出框尾部添加*.m 到文件类型。如图:codeblocks:windows下关于Objective-C开发环境的配置

4)点击“Keywords...”按钮 (紧靠Filemasks...按钮) 添加下面Object-C的关键字到Edit Keywords列表中。

 @interface @implementation @end @class @selector @protocol @public @protected @private id BOOL YES NO SEL nil NULL self @protocol

如图:

codeblocks:windows下关于Objective-C开发环境的配置

8,现在为止,环境就算配置好了。下面就是验证一下配置的正确性。重启codeblocks。

首先,新建一个工程,选择File->New->Project…,会出现一个工程类型窗口,选择Console Application。

codeblocks:windows下关于Objective-C开发环境的配置

之后出现:

codeblocks:windows下关于Objective-C开发环境的配置
随便选个就行了。

随便给自己的工程起个名字:

codeblocks:windows下关于Objective-C开发环境的配置
之后进行编译器选择,选择自己刚才调试的compiler:

codeblocks:windows下关于Objective-C开发环境的配置

9,把自己所建工程source中的main.cpp改成main.m.

codeblocks:windows下关于Objective-C开发环境的配置
10,双击打开main.m把里面原来的代码改为objective-c的代码:

#import
int main(int argc,const char *argv[]){
 NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
 NSLog(@"%@",@"hello world");
 [pool drain];
 return 0;
}
codeblocks:windows下关于Objective-C开发环境的配置
11,运行,进入Build->Build and Run或直接按F9.如果运行成功即会出现:

codeblocks:windows下关于Objective-C开发环境的配置



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何选择商铺投资

如何选择商铺? 选择商铺时,需要考虑哪些因素呢? 聂先生表示,要看地段,包括周围的商业环境、停车方便程度、汽车流量、未来发展前景、视觉效果等因素。此外,地域经济也很重要,必须要有一个好的投…

PaperNotes(6)-GAN/DCGAN/WGAN/WGAN-GP/WGAN-SN-网络结构/实验效果

GAN模型网络结构实验效果演化1.GAN1.1网络结构1.2实验结果2.DCGAN2.1网络结构2.2实验结果3.WGAN3.1网络结构3.2实验结果4.WGAN-GP4.1网络结构4.2实验结果5.WGAN-SN5.1网络结构5.2实验结果小结1.GAN 文章: https://arxiv.org/pdf/1406.2661.pdf 代码: Py…

Spring Security使用

Spring Security 在web应用开发中,安全无疑是十分重要的,选择Spring Security来保护web应用是一个非常好的选择。 Spring Security 是spring项目之中的一个安全模块,可以非常方便与spring项目无缝集成。特别是在spring boot项目中加入sprin…

nginx python webpy 配置安装

安装webpy$ wget http://webpy.org/static/web.py-0.34.tar.gz$ tar xvzf web.py-0.34.tar.gz$ cd web.py-0.34$ sudo python setup.py install安装 Fluphttp://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz$ wget http://www.saddi.com/software/flup/dist/flup-1.0.2…

PaperNotes(7)-GANs模式坍塌/训练不稳定

GANs-模式坍塌-训练不稳定1.训练不稳定问题相关文章1.1 DCGAN1.2Big-GAN1.3WGAN 、WGAN-GP、SN-WGAN1.4其他工作2.模式坍塌问题相关文章2.1 MAD-GAN2.2 Unrolled GAN2.3 DRAGAN2.4 D2GAN2.5 InfoGAN2.6 Deligan2.7 EBGAN2.8 Maximum Entropy Generators for Energy-Based Model…

thinkphp框架起步认识

先看看thinkphp的文档吧:这是我在网上找的一个不错的链接地址,对自己有用,同时相信对读者也有用吧。 http://doc.thinkphp.cn/manual/class.html ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说…

leetcode403 青蛙过河

一只青蛙想要过河。 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有)。 青蛙可以跳上石头,但是不可以跳入水中。 给定石子的位置列表(用单元格序号升序表示)&#xff…

PaperNotes(8)-Stein Variational Gradient Descent A General Purpose Bayesian Inference Algorithm

通用贝叶斯推理算法-Stein Variational Gradient DescentAbstract1 Introduction2 Background3 Variational Inference Using Smooth Transforms3.1 Stein Operator as the Derivative of KL Divergence定理3.1引理3.23.2 Stein Variational Gradient Descent4 Related Works5 …

thinkphp的增删改查

ThinkPHP 添加数据 add 方法 ThinkPHP 内置的 add 方法用于向数据表添加数据,相当于 SQL 中的 INSERT INTO 行为。ThinkPHP Insert 添加数据添加数据 add 方法是 CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create 的实现&a…

leetcode115 不同的子序列

给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。 一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是…

ThinkPHP 模板循环输出 Volist 标签

volist 标签用于在模板中循环输出数据集或者多维数组。volist 标签在模块操作中&#xff0c;select() 方法返回的是一个二维数组&#xff0c;可以用 volist 直接输出&#xff1a;<volist name"list" id"vo"> 用 户 名&#xff1a;{$vo[username]}&l…

MachineLearning(9)-最大似然、最小KL散度、交叉熵损失函数三者的关系

最大似然-最小KL散度-最小化交叉熵损失-三者的关系问题缘起&#xff1a;给定一组数据(x1,x2,...,xm)(x^1,x^2,...,x^m)(x1,x2,...,xm),希望找到这组数据服从的分布。此种情况下&#xff0c;分布规律用概率密度p(x)表征。 问题归处&#xff1a;如果能够建模/近似建模p(x)&#…

ThinkPHP redirect 页面重定向使用详解与实例

ThinkPHP redirect 方法ThinkPHP redirect 方法可以实现页面的重定向&#xff08;跳转&#xff09;功能。redirect 方法语法如下&#xff1a;$this->redirect(string url, array params, int delay, string msg) 参数说明&#xff1a;url 必须&#xff0c;重定向的 URL 表达…

PaperNotes(9)-Learning deep energy model: contrastive divergence vs. Amortized MLE

Learning deep energy model: contrastive divergence vs. Amortized MLEabstract1 Introduction2 Background2.1 stein variational gradient descent2.2 learning energy model**contrastive Divergence**abstract 受SVGD算法的启发,本文提出两个算法用于从数据中学习深度能…

windows下的gvim配置

首要任务是下载安装Gvim7.3 。 安装完后&#xff0c;gvim菜单中文出现乱码&#xff0c;在_vimrcset文件中增加&#xff1a; " 配置多语言环境,解决中文乱码问题 if has("multi_byte") " UTF-8 编码 set encodingutf-8 set termencodingutf…

leetcode104 二叉树的最大深度

给定一个二叉树&#xff0c;找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c; 3 / \ 9 20 / \ 15 7 返回它的最大深度…

C++的安全类型转换的讨论

关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_cast、reinterpret_ca…

PaperNotes(10)-Maximum Entropy Generators for Energy-Based Models

Maximum Entropy Generators for Energy-Based ModelsAbstract1 Introduction2 Background3 Maximum Entropy Generators for Energy-Based Models4 Experiments5 Related Work6 Conclusion7 AcknowledgementsAbstract 由于对数似然梯度的难以计算&#xff0c;能量模型的最大似…

leetcode105 前序中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如&#xff0c;给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树&#xff1a; 3 / \ 9 20 / \ 15 7 思路&#xff1a; 1、…

c++的虚拟继承 的一些思考吧

虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class …