首页 > 学院 > 开发设计 > 正文

windows上Objective-c环境配置

2019-11-08 02:15:12
字体:
来源:转载
供稿:网友

摘要:

网上通过GNUstep使用gnu gcc在windows上运行objective-c的资料很多。但是当需要使用@autoreleasepool这种objective-c2.0引入的注解属性的时候,gnu gcc不能成功编译。这时候需要使用LLVM clang编译器来解决这一问题。

PART1:

一,基本安装

1,GNUstep安装: 搜索使用关键字gnustep windows installer,进入官网,可以看到下面一些官方安装包:

Package Required Stable Unstable Notes
GNUstep MSYS System Required 0.30.0 - MSYS/MinGW System
GNUstep Core Required 0.35.0 - GNUstep Core
GNUstep Devel Optional 1.4.0 - Developer Tools
GNUstep Cairo Optional 0.35.0 - Cairo Backend
PRojectCenter Optional 0.6.2-35 - IDE (Like Xcode, but not as complex)
Gorm Optional 1.2.22-35 - Interface Builder (Like Xcode NIB builder)

来自 <http://www.gnustep.org/windows/installer.html>

作为开发人员,至少需要前面三个包。下载并安装之,三个应用均安装在同一路径下,比如C:/GNUstep下。 2,clang安装: 搜索关键字clang,进入LLVM clang的官网,下载一个clang安装到GNUstep MSYS System的local目录下,比如C:/GNUstep/msys/1.0/local/下。 3,捷径: 上面两步也可以改成直接找clang_gnustep_objective-c_for_windows这一资源,解压最终得到一个名为GNUstep的文件夹,将其放到C:/下即可。前面的超链接是这个百度云链接:https://pan.baidu.com/s/1nv6WfgP,提取码: 2qt2.

PART2:测试

一,gnu-console下:

1, 进入GNUstep MSYS System的安装目录下,比如C:/GNUstep/msys/1.0/下,运行myss.bat脚本: 这里写图片描述 这会打开一个unix/linux风格的console: 这里写图片描述 在其中可以执行简单的linux命令,同时也可以使用一些windows命令行命令。 2, 创建一个objective-c源文件: 创建一个测试文件夹:$ mkdir test 进入之:$ cd test 使用vim来创建并编辑一个源文件:$ vim test.m 上面三步可以搞定,但是很不舒服,可以这么做: 使用windows资源管理器进入C:/GNUstep/msys/1.0/home/user/目录下: 在这里新建一个文件test,然后在其中创建一个文本文件test.m,使用文本编辑器来编辑内容。 3, test.m的内容可以写:

#import <Foundation//Foundation.h> int main (int argc, const char *argv[]) { @autoreleasepool { NSLog(@"Hello pyx"); } return 0;}

4,编译: 在前面打开的console中,执行下面的命令:

clang -o test test.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

注意:在有的objective-c教程里编译使用的自动配置,即命令是:

clang -fobj-arc -o test test.m;

执行结果可能会抛出 -fobj-arc is not supported on platforms using the legacy runtime 这么一个异常,如果遇到这种情况,请不要使用-fobj-arc参数,改而使用上文的全部详细配置方式。 5:执行: $ ./test 这里写图片描述

二,环境变量问题:

如果直接在windows的console下,或者直接双击执行上例生成的exe文件,结果会报文件缺失错误。 新增一个环境变量,GNUSTEP_HOME

GNUSTEP_HOME=C:/GNUstep;

Path环境变量中加上:

%GNUSTEP_HOM%/bin;%GNUSTEP_HOME%/msys/1.0/bin;%GNUSTEP_HOME%/GNUstep/System/Tools

这三个环境变量加上后,便可以直接在windows中双击执行生成的exe。

PART3,IDE环境:

这里介绍的是Code::Blocks的配置。

一,配置:

注意:该配置的前提是已经配置了Part2的二环境变量问题所说的环境变量。 下载和安装Code:Block好之后,要配置一下,才可以使用。 1,编译器选择,settings->compiler打开编译器配置对话框,select compiler中选择LLVM clang compiler,点击copy按钮,设置一个名字,比如myClang。 2,编译器配置:compiler settingsother compiler options 中输入:

-IC:/GNUstep/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -LC:/GNUstep/GNUstep/System/Library/Libraries

这里写图片描述 3,链接器配置有两种方式: (1)linker settings的other linker options中输入:

-lobjc -lgnustep-base

(2)linker settings的link libraries中选择下面两个文件: C:/GNUstep/GNUstep/System/Library/Libraries/libgnustep-base.dll.aC:/GNUstep/GNUstep/System/Library/Libraries/libobjc.dll.a tips:在本机的测试过程中,使用第一种方式,有一定可能出现链接错误,报链接程序ld.exe找不到-lobjc -lgnustep-base文件。但第二种配置可以成功,推荐使用第二种配置。 4, debugger配置: setting->debugger,打开debuger调试器,给选择一个dugger程序即可,比如这里使用gdb.exe。 这里写图片描述 **5,**Editor配置: 进入ssttings->Editor中的Syntax highlighting中,找到Syntax highlighting for Obejective C 点击filemarks,向其中添加*.m项。 找到Syntax highlighting for Matlab项,移除其中的*.m项。 这里写图片描述

二,测试:

1,新建一个项目,添加一个main.m源文件,其内容和前面的源文件一样: 这里写图片描述 2,在main.m上右键,查看Properties,确保以下设置: Bin选项卡中的Compile file和和link file被勾选,这个可以在文件上右键->options中快速配置。 关键:Advanced选项卡中的For this compiler一定要选择我们配置的编译器。当然,可以在前面编译器配置阶段将我们配置的编译器设为默认编译器,即点击那个Set as Default按钮。 这里写图片描述

3,编译,并执行整个项目。

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表