eclipseでWindowsの下でC開発をする


プロジェクトのため、Windowsの下でCで開発する必要があります.MicrosoftのIDEへの移行パッケージがずっと好きではなかったので、Visual Studioの下で2ヶ月も続けたのは本当に我慢しました.そこでEclipse+cdtを使ってみました.
まず最初に発生する問題はインストールです.Eclipse3.3 + CDT4.x.x-masterに深刻なバグがあるなんて.まる2日間無駄にして、googleは後でやっとみんながこの問題に悩まされていることに気づいた.直接Eclipse for C/C++devに変更してからコンパイルをスムーズに進めます.初期、コンパイラが選んだのはMinGW.CDTとMinGWの組み合わせはかなりの可用性を備えているといえる.ほとんど構成を必要とせず、すぐに符号化、コンパイル、デバッグに着手できます.
次の作業は,元のVCで書かれたコードをCDT+MinGW環境に移植することである.最初は簡単なコードセグメントのコンパイルが簡単でしたが、#include“stdafx.h”、#pragma commentなど、少し修正するだけで...注釈を外すとコンパイルが通過します.しかし、移植作業が進むにつれて、いくつかの複雑なコードセグメントに問題が発生し始め、3つの問題が深刻になりました.
1、Unicode char*の問題.VCは6バージョンの時Unicodeの処理に対して考慮に欠けて、そのため増加しました_UNICコード前処理定義、同時に協力_T()マクロの使用.MinGW gccがこれらのコードをコンパイルすると、多くのエラーメッセージと警告が表示されます.大半はTCHAR WHARの変換にあります.半日デバッグしましたが、コンパイル結果を実行する際に不安定な状況が発生しました.
2、2つ目はLink Libの問題です.MinGWは大量の必要なヘッダファイルとLibライブラリを提供し、基本的にVCの既存コードと完全に互換性がある.しかし、一部のVCによるANSI Cの拡張は実現されていない.これは特定の状況で移植作業に大きな仕事量をもたらし、私は次々と追跡して補充しなければなりません.精力を費やした.
3、3つ目の問題は現在最も深刻に見えます.このプロジェクトでは、コンパイル後のexeファイルが非常に微小で、100 K未満であることが要求されています.しかしMinGWはこの点で明らかな弱さを示した.簡単なHello WorldのC++プロジェクトReleaseのコンパイル後も800 K程度に達し、strip後も200 Kにしか減少しません.私たちの要求を満たすのは難しい.
以上の理由からEclipse+CDT+VCコンパイラの結合を試み始めました.CDTはVCのデフォルトオプションと構成をほとんど提供していません.CDT Visual C Error Parserは、Error parsersにのみ提供される.そのため、手作業で配置しなければなりません.
短い試みを経て、構成に成功し、楽になりました.方法は次のとおりです.
  • C/C++プロジェクトを作成する場合は、Makefileプロジェクト->Hello World C++プロジェクトを選択します.注意:Toolchainは--Other Toolchain---を選択します.
  • プロジェクトが作成されたら、自動的に生成されたMakefileファイルを変更します.最も重要なのは、次の2つの変更です.
  • 「OBJS=Test.o」を「OBJS=Test.obj」に変更します.VCのコンパイラclが自動的に認識するターゲットファイルの場合*.Objではなく*.o、これはGccとの重要な違いです.コンパイル中に「NMAKE:fatal error U 1073:don't know how to make」というエラーメッセージが表示されます.
  • 「clean:」次の行のrmをeraseに変更します.eraseはwindowsが持参した削除コマンドです.
  • プロジェクトProperties設定ウィンドウを右クリックし、C/C++Buildを選択し、Usedefault build commandのcheckboxをフックします.Build->Build commandでmakeをnmakeに変更します.(nmakeはvcの「make」).
  • C/C++Build->Discovery optionsを選択し、Compiler invocation commandでgccをclに変更します.(clはVCのコンパイラ)
  • C/C++Build->Envionmentを選択し、新たに3つの環境変数を作成:
  • PATH=C:\Program files\Visual Studio\VC98\Bin;C:\Program files\Visual Studio\Common\MSDev98\Bin
    LIB=C:\Program files\Visual Studio\VC98\Lib
    INCLUDE=C:\Program files\Visual Studio\VC98\Include
    
     :   C:\Program files\Visual Studio\    VC    

     
    よし、大功を成し遂げた.
    同じコードをVCでコンパイルしたサイズは40 Kしかなく、要件を満たしています.ただコンパイル速度はMinGWのgccよりかなり遅くなりました.その後、Visual Studio 2005のC++コンパイラで試したことがありますが、構成方法は全く同じです(インストールパスを変更すればいいです).しかしコンパイル速度は非常に向上しています.MinGWのgccを超えることもあります.(Visual Studio 2005のC++コンパイル速度はずっと評判がいいです).
    これまでEclipse CDTにvcコンパイラを採用してきたが,コード移植は順調に進んでいる.主な仕事はMakefileの作成に費やされていますが、私はずっと自分がMakefileを書くのが楽しいと思っています.これはあなた自身がコンパイルの過程をコントロールすることができます.
    Eclipse CDT+VCの1つの欠点はGDBを使ってDEBUGを行うことができないことです.これは私にとってどうでもいいです.どうせgdbを頻繁に使ってコードをデバッグするのはよくない習慣です.
    工事はまだ続いているので,新しい心得ができてから,メモしておきます.
     
     
     
     
     
     
     
    ------------------------------------------------------------------------------------------------------------
    KO対戦ゲームプラットフォーム www.ko10000.comはゲームをして、友达になります。