質問

Visual Studio IDE 経由で開発しながら GCC コンパイラーを利用する方法はありますか?

私たちのプロジェクトはクロスプラットフォームなので、頻繁にトラブルに見舞われます。 同僚 標準に準拠していないコードをチェックインしているためです (これは VS コンパイラーに起因する可能性があります!)。

MS コンパイラを使用してコンパイルできるようにしたいので、デバッグなどを続けることができますが、できるようにしたいと考えています。 スイッチ 他のプラットフォームでのビルドを壊さないようにするため、GCC を使用してコンパイルします。

これは可能でしょうか?

役に立ちましたか?

解決

私が提案しようとしているものには、やはり Makefile が必要なので、以前の返信のアドバイスを部分的に繰り返しています。あるいは、前述したように、メイクファイルをすでに持っている可能性もあります。その場合、これから説明することを達成するための手順はさらに少なくなります。

コード上で make または g++ を呼び出すための特定の Windows コマンド ライン コマンドがわかったら、Visual Studio プロジェクトで「ビルド前イベント」を作成します。(「プロジェクト プロパティ >> 構成プロパティ >> ビルド イベント >> ビルド前イベント」)。

ビルド前イベントは、bat ファイル スクリプト、またはマシン上のその他のスクリプトを呼び出すことができ、そのスクリプトはエラー コードを返すことができます。基本的に、「スクリプト OK」または「スクリプト失敗」は、スクリプトが Visual Studio に戻ることができる通信量の範囲です。

スクリプトは、すべての Visual Studio 環境変数 ($(InputDir)、$(ProjectDir)、$(SolutionName) など) を自動的には認識しませんが、スクリプトの呼び出し方法を指定するときにこれらの変数を使用できます。つまり、これらの値を引数としてスクリプトに渡すことができます。

これを設定すると、Visual Studio でビルドするたびに、ビルド前イベントが最初にコードに対して make/g++ を実行しようとします。スクリプト (make/g++ を呼び出すスクリプト) が問題を検出すると、スクリプトはエラーを返し、ビルドをその場で停止できます。スクリプトは stdout または stderr に出力でき、その出力は Visual Studio のビルド出力ウィンドウ (通常、「========== Build:」のような内容が表示されるウィンドウ) に表示されます。3 回成功、0 回失敗」)。

スクリプトを印刷させることができます。

「ビルドに失敗しました。移植不可能なコードが検出されました。make/g++ は次を返しました:....」

こうすることで、Visual Studio からコマンド ラインに定期的に切り替えることを忘れずに済みます。これはビルドするたびに自動的に行われます。

他のヒント

これを行う方法は確かにあります。これが、ソニーのツールチェーン (gcc に基づく) を使用して PS3 向けに開発する方法です。それがどのように機能するのか正確にはわかりませんが、非常にシームレスに VS に統合されます。

あなたがする必要があるのは、makefile でビルドするように設定するか (おそらく最も簡単です)、VC 引数を gcc 引数に変換するラッパー プログラムを書くことだと思います。また、エラー/警告出力を VS 形式で表示したい場合 (クリックすると、そのファイル/ラインがエディターに表示されます)、出力を変換するものが必要です。

これはあなたに役立つかもしれません 関連するディスカッション GCCツールのWRS/VXWorksバージョンでVSを使用することについて:

特に注意してください そこにリンクされているプログラム エラー出力を変換します。

gcc のコマンドライン オプションは VS とは大きく異なるため、単純な切り替えは存在しないと思います。いずれの場合でも、コンパイラを実行するだけでは簡単ではありません。ビルド システムでは、コンパイルを成功させるために設定する必要がある多数のプリプロセッサ定義とビルド変数が設定される可能性があります。

あなたの同僚が Unix で作業している場合、彼はおそらく make、scons、または cmake ベースのビルド システムを持っているでしょう。使用できます シグウィン gcc、make、flex、bison、その他すべての Unix 機能を含む標準の Unix ツールチェーンを Windows にインストールします。scons と cmake のネイティブ バージョンはありますが、それらは VS を使用しようとするため、役に立ちません。Cygwin を介してインストールして gcc が強制されるかどうかを確認したことはありませんが、それはあなたには関係ないかもしれません。

VS コンパイラを使用する make システムを作成することは可能ですが、面倒です (そこにいた、やった)。そして別の質問。;)

その後、特別なビルドステップを使用して、VS 内から gcc コンパイルを実行できます。個別のビルド ターゲット (デバッグとリリースなど) を用意し、プロジェクト ファイル内でそれらを作成することもできます (これらは単なる ASCII ファイルなので、確認してください) が、私はそれを行うのに十分な VS 担当者ではありません。それがどれほど簡単か知っています。これを最新の状態に保つのは少し面倒なので、スクリプトを作成して自動的に作成することをお勧めします。

gcc でコンパイルするには別の makefile を維持する必要がありました。make の学習には初期費用がかかりますが、コードと VS C++ と gcc の違いについての詳しい知識から恩恵を受けることができます。これを行ったときは VC 6 を使用していたので、VS 2005 ではもっと良い方法があるかもしれません。

Cygwin を試してください。すべての Makefile を正しく設定していれば、いつでも VS と GCC の両方でコンパイルを試みることができます。

プロジェクト ファイルがどれだけ複雑かによって異なります。

cygwin のような gcc 環境が必ず必要です。

  • 小規模なプロジェクトまたは単一ファイルのコンパイルの場合は、カスタム ビルド ツール (ルール ファイル) を使用できます。

  • 大規模なプロジェクト/ソリューションの場合、vcproj/sln ファイルから autotools configure/makefile を自動生成し、これを IDE 内でコンパイルします。gcc のソース ファイル/警告およびエラーの行は、同等の IDE に変換されます (出力ウィンドウでクリック可能)。

おそらく、プロジェクトはクロスプラットフォームであるため、すでに makefile を使用してプロジェクトをビルドしていると思われます。VS プロジェクトを、ビルドが MSVC 用か GCC 用かを示すさまざまなパラメーターを使用してメイクファイルを開始する、さまざまなプロジェクト構成を持つメイクファイル プロジェクトにするだけです。

MSVC メイクファイル ビルドがデバッグ ファイル (PDB) をビルドできる場合、これは実行できるはずですが、VS デバッガーもシームレスに動作します。

Visual Studio 内で GCC を使用してビルドするのは、ツールバーの [GCC] 構成ドロップダウンを選択するのと同じくらい簡単です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top