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…

leetcode115 不同的子序列

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

leetcode104 二叉树的最大深度

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

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

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

leetcode144 二叉树的前序遍历

给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 思路:模仿递归的思路压栈即可。 /*** Definition for a bi…

AJAX大总结

1、AJAX概述 1.1 什么是AJAX AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。 …

关系数据库——mysql数据类型大总结

整数类型: 实数类型: 定点数:DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值。 DECIMAL(M,D),其中M表示十进制数字总的个数,D表示小数点后面数字的位数。 如果存储时,整…

关系数据库——并发控制

并发控制 多用户数据库:允许多个用户同时使用的数据库(订票系统) 不同的多事务执行方式: 1.串行执行:每个时刻只有一个事务运行,其他事务必须等到这个事务结束后方能运行。 2.交叉并发方式: …

关系数据库——数据库恢复

实现技术 恢复操作的基本原理:冗余 恢复机制涉及的两个关键问题 如何建立冗余数据 数据转储(backup)登录日志文件(logging) 如何利用这些冗余数据实施数据库恢复数据转储 数据转储定义: 转储是指DBA将整个数…

算法(22)-leetcode-剑指offer6

leetcode-剑指offer-545.面试题55- 二叉树的深度46.面试题55-2-平衡二叉树47.面试题57-1-和为s的两个数字-双指针48.面试题57-2-和为s 的连续正数序列-双指针49.面试题56-数组中出现数字的次数-位运算leetcode-136 只出现一次的数字Ileetcode-137 只出现一次的数字IIleetcode-2…

leetcode160 相交链表

编写一个程序,找到两个单链表相交的起始节点。 如下面的两个链表: 在节点 c1 开始相交。 示例 1: 输入:intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出:Reference of the node…

leetcode101 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 说明: 如果你可以运用递归和迭…

Linux内核OOM机制的详细分析

Linux 内核有个机制叫OOM killer(Out-Of-Memory killer),该机制会监控那些占用内存过大,尤其是瞬间很快消耗大量内存的进程,为了防止内存耗尽而内核会把该进程杀掉。典型的情况是:某天一台机器突然ssh远程登…

算法(18)-leetcode-剑指offer2

leetcode-剑指offer-211.面试题13-机器人的运动范围-广度优先搜索12.面试题14-1-剪绳子13.面试题14-2-剪绳子214.面试题16-二进制中1的个数-布莱恩克尼根15.面试题16-数值的整数次方-快速幂解析法16.面试题17-打印从1到最大的n位数17.面试题18-删除链表的节点18.面试题19-正则匹…

leetcode21 合并两个链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路:链表归并。 /*** Definition for si…

leetcode35 插入的位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 思路:二分查找 public class Solution {public int searchInsert(i…

算法(20)-leetcode-剑指offer4

leetcode-剑指offer-433.面试题33-二叉搜索树的后序遍历序列34.面试题34-二叉树中和为某一值的路径35.面试题35-复杂链表的复制36.面试题36-二叉搜索树与双向链表37.面试题37-序列化二叉树38.面试题38-字符串的排列39.面试题39-数组中出现次数超过一半的数字40.面试题40-最小的…

算法(21)-leetcode-剑指offer5

leetcode-剑指offer-443.面试题43-1~n整数中1出现的次数44.面试题44-数字序列中某一位的数字45.面试题45-把数组排成最小的数-快排变种46.面试题46-把数字翻译成字符串47.面试题47-礼物的最大价值-dp48.面试题48-最长不含重复字符的子字符串-滑动窗口法49.面试题49-…

leetcode7 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, …