Cocotron、Objective-Cフロントからの最新ニュース

Cocotronは、AppleのCocoaランタイムに似たObjective-Cのランタイム実装です。 他の一般的なオープンランタイムであるGNUstepとは、目的と実装の両方でまったく異なります。



Cocotronは、OSXプラットフォームからWin32へのコードの移植に最適です。 もちろん、APIの実装は理想とはほど遠いですが、実践が示すように、開発者は常に問題を迅速に解決します。



当初、CocotronはXcodeとmingw-toolchainに基づくクロスアセンブリにのみ使用されていました。 クロスビルドは、Windows、Linux、およびSolarisでの展開に使用できます。



もちろん、このアプローチは、開発チェーンの中で最も困難で高価な段階であるOSX(最適には元のハードウェア上)を残しました。 この依存関係のため、プラットフォームとしてのCocotronの能力を完全に開示することはできませんでした。





Cocotronは、異なるランタイムObjective-Cを使用する元のGCCでは動作しません。 このため、GCCはAppleのパッチを使用してコンパイルする必要があります。これは、とりわけ、バニラGCCの言語から言語を少し拡張します。



GCCのインストールプロセスは非常に伝統的なもので、最初にソースツリーをダウンロードする必要があります:

  svn checkout http://cocotron-tools-gpl3.googlecode.com/svn/trunk/gcc cocotron-gcc 


そしてそれをコンパイルします:

  mkdir gcc-build
 cd gcc-build
 ../cocotron-gcc/configure --prefix = / opt / objc --with-gnu-as --with-gnu-ld --without-newlib --disable-multilib \
     --disable-libssp --disable-nls --disable-libobjc --enable-libffi --enable-objc-gc \
     --enable-languages = c、objc、c ++、obj-c ++ --enable-checking = release
 make -j2
 sudo make install 


ここでは、GCCとCocotronに/ opt / objcプレフィックスを使用します。



オプションとして、新しく到着したhabrovchanin pfactumによって親切に提供された、組み立てられたdebパッケージを使用できます。



これで、Cocotronの特定のアセンブリに進むことができます。 現在、ネイティブビルドはLinux、OpenBSD(およびおそらくFreeBSD)、およびDarwin(つまりOSX)でサポートされています。 ビルドするには、githubで公式ツリーのフォークを取得する必要があります。

  git clone git://github.com/farcaller/cocotron.git
 cd cocotron
 git checkout origin / native-build -b native-build 


(ちなみに、masterブランチは自動的に公式のsvnと同期されるため、誰かがソースを "選択"し、gitを好む場合は歓迎します)。



ビルドシステムはCMakeに基づいており、少なくとも2.6:

  mkdirビルド
 cdビルド
 cmake -DCMAKE_C_COMPILER = / opt / objc / bin / gcc \
     -DCMAKE_CXX_COMPILER = / opt / objc / bin / g ++ \
     -DCMAKE_INSTALL_PREFIX = / opt / objc ..
作る
 sudo make install 


現在のところ、Foundationのみが収集され、AppKitビルドスクリプトの作業が進行中です。



組み立てられたライブラリはテストできます:

  cat> test.m << EOF
 #import <Foundation / Foundation.h>

 int main(int argc、char * argv [])
 {
         NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
         NSLog(@ "Hello、Objective-C World!");

         [プールの排水口];
         0を返します。
 }
 Eof 


  / opt / objc / bin / gcc test.m -o test -I / opt / objc / include -L / opt / objc / lib \
   -lFoundation -lpthread -ldl 




Cocotronの開発が新しい開発者を引き付け、非常に興味深いプログラミング言語であるObjective-Cの人気が高まることを期待しています。



All Articles