windows 下 Objective C++ 编译环境搭建

晨曦之光 发布于 2012/03/09 12:11
阅读 252
收藏 0

【摘要】

介绍Objective C++ 在windows 环境下的搭建知识. 注意, 本文的目的只是为了搭建一套学习语言的环境, 而非发布一个AppStore的应用. 如果要发布应用, Windows平台似乎无能为力, 因此如果找寻发布应用的环境搭建. 与本文无关.


【核心内容】

通过GCC编译环境实现对Objective C++的编译.  原本采用 Cygwin + GNUstep, 发现Cygwin配置存在问题, 后面改用GNUStep官方使用的MinGw直接一键式安装.

Cygwin的安装方式将后续持续关注, 有进展将更新本博客, 目前请绕过Cygwin的内容.


环境搭建步骤:

1. 下载Cygwin,  请找其它资料了解如何搭建这样一个环境, 我们利用Cygwin的目的, 仅仅是利用其提供的GCC编译组建, 并且Cygwin可以在windows下面很好的运作.


2. 下载核心GNUstep核心组件

     这里可以找到

    这些组件包括四个:

   1.  GNUstep Make 
   2. GNUstep Base 
   3. GNUstep GUI
   4. GNUstep Backend


3. 按照提示安装

   用户文档    大致的步骤如下, 【强烈建议按照英文参考文献】:

  •    先安装 GUNstep Make. 就是将这个包解压缩后, 在Cygwin下运行几个命令
    •   ./configure
    •   make
    •  make install
    • ./usr/local/share/GNUstep/Makefiles/GNUstep.sh
  •    然后安装 gnustep-base, gnustep-gui and finally gnustep-back. 就是./Configure后面在make 和install

  

4. 后面出了一堆错误

   Pre-requisites

      

     重新将需要的Cygwin包加入, 依然在安装GNUStep base的时候, 报如下错误:

          ld returned 1 exit status
    [4]: *** [obj/libgnustep-base.dll.a] Error 1
    [4]: *** Deleting file `obj/libgnustep-base.dll.a'
    [3]: *** [internal-library-all_] Error 2
    [2]: *** [libgnustep-base.all.library.variables] Error 2
    [1]: *** [internal-all] Error 2
    : *** [internal-all] Error 2

   非常郁闷中, 原因竟然是不支持Cygwin.

   按照上文提示: 直接用MinGW Installer搞定.

  下载链接   选中1. GNUstep MSYS System [这个是MinGW的套件] 这个必须要

                             2. GNUstep Core 核心包, 这个必须要

                             3. GNUstep Devel 这个必须要, 因为GCC都在里面, 如果你安装过其它的GCC版本, 建议卸掉,在安装这个

                             4. 其它的没试过,   但建议都安装上


现在开始可以编译了, 站在牛人的肩膀上 看看

Objective-C:GCC+GNUstep配置


按照上文提示: 这个编译指令应该没有问题:


gcc -fconstant-string-class=NSConstantString -c main.m -I /GNUstep/System/Library/Headers


实际上报错了: 提示如下:

: error: #error The current setting for native-objc-exceptions does not match th
at of gnustep-base ... please correct this.

找到一篇文章对付这个扯蛋的问题:

解决方案

这样是可行的:

$ gcc  `gnustep-config --objc-flags` -fconstant-string-class=NSConstantString -c main.m -I /GNUstep/System/Library/Headers


有兴趣可以研究一下该文。我也会更新一下本人的理解


但本文最大的目标不是玩上面的命令行, 而是用IDE的方式快速进行工程管理, 采用的方式是: Eclipse + GNUstep配套组建MinGW来完成. 后面继续补上






原文链接:http://blog.csdn.net/ostrichmyself/article/details/7261813
加载中
返回顶部
顶部