Objective C 在Windows下编译的三个方法(非CodeBlock)
来源:互联网 发布:无锡数据恢复 编辑:程序博客网 时间:2024/05/16 15:22
安装好GNU等工具后在“开始”菜单中“所有程序”下可以找到“GNUstep”->“shell”(也就是GNU目录下的msys.bat),就会出console窗口,可以试试一些Linux命令(ls,cd,mkdir等)。
(1)方法一:
开发
首先我们来写一个 HelloWorld,简单起见,我们在 C 盘根目录下创建 HelloWorld.m 文件,并保存,代码如下:
- #import <Foundation/Foundation.h>
- int main (int argc, const char *argv[])
- {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- NSLog(@"Hello World!");
- [pool drain];
- return 0;
- }
注:关于用什么工具来编写代码,由于我也是初次使用,并没有特别好的工具推荐,我自己使的是 UltraEdit。
编译
由于 HelloWorld.m 是在 C 盘根目录下,所以首先我们将路径切换到 C 盘根目录:
- $cd C:\
注:cd 这种方式同样适用于切换到任意驱动器或任意子目录下,路径的组织结构与 windows 没有区别,不区分大小写。
编译成目标码
执行上面的命令后,控制台不会有任何输出,这是正确的,否则你需要去检查原因了。同时在 C 盘根目录下会生成一个 HelloWorld.o 的目标文件,在下一步,我们将用它来编译成可执行文件。
- gcc -fconstant-string-class=NSConstantString -c HelloWorld.m -I /GNUstep/System/Library/Headers
编译成可执行文件
C 盘根目录下会生成 HelloWorld.exe
- gcc -o HelloWorld HelloWorld.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
执行
我们可以直接在 Windows 控制台下执行 HelloWorld.exe,也可以在 Shell 窗口中执行:
在 Shell 窗口输入:
- ./HelloWorld.exe
输出如下:
- 2011-09-23 13:22:42.828 helloworld[5484] Hello World!
关于工作路径
我们做开发时,项目不可能放在 C 盘根目录下,一般都是有组织的,那么如何编译这类的文件呢?其实方法很简单,使用 cd 命令,进入到 .m 所在的目录下,然后执行编译。
(2)方法二
- #import <Foundation/Foundation.h>
- int main( int argc, const char *argv[] ) {
- NSLog(@"hello world\n");
- return 0;
- }
在Windows环境下用记事本等编写上述代码,并且保存到D:/home下,取名为helloworld.m。在GNUstep的console窗口命令行下,
1. cd d:\home
2. gcc -o helloworld helloworld.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base
3. 此话在home文件夹下会自动生成helloworld.exe文件。在终端输入
helloworld.exe
helloworld.exe编译并运行成功的话,说明windows下Objective C开发环境就搭建好了
说明:第二步中的一些参数明说,如果熟悉Linux/Unix下C/C++编译的话,上述参数应该很熟悉,-I表示头文件查找的路径,-L表示库文件查找路径,-l表示需要链接的库文件。但是,-fconstant-string-class=NSConstantString 对于这个参数可能比较陌生,这个参数主要是指定常量字符串所使用的class。
如果在终端显示找不到头文件,建议考虑把那些软件重新安装一次
Make
上面的编译过程很繁琐,稍有不慎就可能输入错误,造成编译失败,其实还有一个更简单的方法,就是建立一个 make 文件,对于 GNUstep 来说,make 文件名必须是“GNUmakefile”,内容如下:
- include $(GNUSTEP_MAKEFILES)/common.make
- TOOL_NAME=HelloWorld<strong>
- </strong>HelloWorld_OBJC_FILES=HelloWorld.m
- include $(GNUSTEP_MAKEFILES)/tool.make
HelloWorld 关键字部分为可替换为实际内容。GNUmakefile 文件要求与 .m 文件在同一目录下。
make 的执行很简单,进入 “GNUmakefile” 所在的目录,在 Shell 窗口中执行 “make” 即可。这会在 “GNUmakefile” 所在目录下生成一个 obj 目录,obj 下包含了可执行文件和目标文件等。
但是编译的时候出现了问题:我们找到common.make和tool.make文件所在的目录,在makefile文件中添加,修改后如下:
GNUSTEP_MAKEFILES=C:\GNUstep\GNUstep\System\Library\Makefilesinclude $(GNUSTEP_MAKEFILES)/common.make TOOL_NAME=hello hello_OBJC_FILES=hello.m include $(GNUSTEP_MAKEFILES)/tool.make </span>
其中两个.make文件的路径是C:\GNUstep\GNUstep\System\Library\Makefiles
运行成功。
- Objective C 在Windows下编译的三个方法(非CodeBlock)
- 如何在windows下用CodeBlock编译Objective-C代码
- objective c 学习之--如何在Windows下用CodeBlock集成Object C开发环境(转)
- Windows下编译objective-C
- Windows下编译objective-C
- windows下编译objective-c
- Windows下编译objective-C
- Windows下编译objective-C
- 在 windows 环境下编译 Objective-C 程序
- windows下ffmpeg编译+codeblock+msys
- Windows环境下配置Objective-C的编译环境
- windows 下 Objective C 编译环境搭建
- Windows环境下编译objective-c
- 如何在 Windows上编译Objective-C
- 如何在 Windows上编译Objective-C
- 如何在 Windows上编译Objective-C
- 如何在Windows上编译Objective-C
- objective-c : windows下搭建环境并编译自己的第一个objective-c程序
- hdu 3172 Virtual Friends
- cas改造随笔
- 仿真
- 浅析BMP位图文件结构(含Demo)
- NS2常用网站
- Objective C 在Windows下编译的三个方法(非CodeBlock)
- 织梦二级联动解决方法
- JavaScript侦听Html元素Attribute的变化
- 在Windows中配置Rsync同步
- 启动oracle11g数据库报memory_target not supported on this system错解决方案
- SSO 之 (单点登录)实施中遇到的几个问题
- hive 安装
- NS2仿真
- java数组直接插入排序