• 締切済み

VC++のビルドとリビルドの違い

VC(マイクロソフトのVisual C++)で、ソースをコンパイルするときにビルドを押すと思うのですが、ビルドの隣にリビルドがあります。このビルドとリビルドの違いはなんなのでしょうか?? こんなときは「ビルド」でこんなときは「リビルド」のような具体的な事例もできれば教えて頂ければ幸いです。

みんなの回答

noname#11476
noname#11476
回答No.2

通常はビルドで充分ですが、以下のような場合はリビルドを使います。 1.コンパイラ、リンカのスイッチを変えて作り直したいとき。 たとえば、コンパイラの最適化オプションの変更であるとか、違うバージョンのライブラリとリンクし直したいときなど。 よくあるのは、ソースコード内で#ifdef XXXXXXX を使っていて、XXXXXXの定義がmakefile内、プロジェクト設定の中でオプション(-DXXXXXXX)として与えるなど場合には、その有無の差異をmake(又はVCのビルドの機能)が識別出来ないので、リビルドしないと反映されません。 2.なんだかよくわからないが動きがおかしいとき。 普通はきちんと依存関係が作られているので問題は起きないはずですが、きちんとヘッダファイルがインクルードされていないなど依存関係が不明なケースがあると、ビルドが上手く行かないことがあります。 3.一度は良しとして無視していたワーニングをもう一度再確認したいとき。 例えば、使われていない変数があるなどのワーニングでは、作っているときには放置していますが、最後には、無駄なコードを省くためにリビルドしてワーニングを確認して、不要な変数を削除するなどです。 では。

noname#25358
noname#25358
回答No.1

 ビルドとは、最後にコンパイルしてから変更のあったファイルだけをビルドします。  ですので、1つのプロジェクト内に大量のファイルがある場合はコンパイルが高速化します。  リビルドはすべてのファイルを完全に1からコンパイルしなおす方法で、そのプロジェクトを作成してから初めてのコンパイルと同じことになります。

関連するQ&A

  • VC++4.0→VC++6.0

    Visual C++4.0で作成したソースをVisual C++6.0で 読み込ませたい(VC++6.0で再コンパイルしたい)の ですが、.dswファイルを起動しても関連するファイルが 開いてくれません。(ファイルビューには.makしかない) Visual C++6.0で再コンパイルする方法を教えて下さい。 (VC++自体わからないのですが、コンパイル位は出来ます) そもそも出来ないのでしょうか? (VBは可能なので、VC++も出来るのかなと思いまして...)

  • リビルド後に実行しようとするとビルド要求のメッセージが出る

    VC++6.0のMFCを使って開発しているアプリケーションがあります。そのアプリケーションをビルドする際に起きる問題についてです。 リビルドした後に実行ファイルを実行しようとすると「ビルドしますか?」というメッセージが出てきます。リビルドしたばかりなのに何故ビルドが必要なのかわかりません。それから、再ビルド時には全ソースファイルがコンパイルされているようですので、実行されるまで時間がかかってしまいます。 リビルドしたときにはコンパイルエラーや警告はありませんし、リビルド後には確かに実行ファイルは生成されています。「ビルドしますか?」のメッセージが出ても「はい」ボタンをクリックしてビルドが完了すれば実行ファイルが実行されます。この問題は開発当初からあった問題ではなく、あるときから突然起きた問題です。いつから起きた問題なのかはわかりません。ちなみに、この問題は「バッチビルド」を使って複数のコンフィグレーションをリビルドした時に起きるようです。1つのコンフィグレーション(実行したいコンフィグレーション)のみをリビルドした後にはこの問題は起きません。また、リリース版、デバッグ版ともにこの問題は起きます。 下記はメッセージの内容です。(英語版のVCなのでメッセージは英語です。) (xxxは実行ファイル名、aaa、bbb、cccはソースファイル名) ---------------------------------------------------- One or more files are out of date or do not exist. These files need to be build: .\Debug\xxx.bsc .\Debug\xxx.exe .\Debug\aaa.obj .\Debug\bbb.obj .\Debug\ccc.obj <more file ...> Would you like to build them? ---------------------------------------------------- 原因や解決方法をご存知の方、ご教授をお願い致します。 環境:Win2000(日本語版)、VC++6.0(英語版)、MFC

  • VC++6.0ビルド後の処理で黙り込み

    VC++6.0でDLLを作ったのですが、 プロジェクトの設定でビルド後の処理に copy debug\dll.dll c:\usedll\debug\dll.dll のようにしてリビルドたところ ----------------------------------------------- ................. コードを生成中... リンク中... ライブラリ Debug/MfcDll.lib とオブジェクト Debug/MfcDll.exp を作成中 ビルド後の処理 ----------------------------------------------- ここでビルドが固まってしまいます。 ビルドの中止を押しても復帰せず、VC++を閉じようとしてもビルド中はダメとおこられます。 Ctrl+Cでもダメです。 何度やっても再起動しても確実に止まります。 copy じゃなくてdirとかでも止まります。 ビルド後の処理を外せばちゃんとビルドできます。 なにか心当たりのある方いらっしゃいましたらアドバイスお願いいたします。

  • 1つのDLLにソースを1500個ほど追加してビルドを行なったところ..

    1つのDLLにソースを1500個ほど追加してビルドを行なったところ vc60.idbが 35MBぐらいになり、以下のようなエラーが表示されてビルドが止まります。 環境:Visual C++ 6.0 x:\xxxx.cpp(19) : fatal error C1073: インクリメンタル コンパイルを伴う内部エラーが発生しました(コンパイラ ファイル '.\main.c', 行番号 629) xxxx.CPP vc60.idb削除すると、エラーが表示されなくなり最後までビルドが行なわれます。 よい知恵などありましたら、よろしくお願いいたします。

  • すべてのリビルド: 0 正常、 0 失敗、 1 スキップ となる理由?

    VC2005でDLLをコンパイルしたのですが、リビルドすると以下のようになり 一瞬にして終わりました。 ========= すべてのリビルド: 0 正常、 0 失敗、 1 スキップ ========== 構成マネージャーのビルドにはチェックが入っていますし、他のPCでは コンパイルできました。 何がいけないのでしょうか?

  • VC++をマイクロソフトからダウンロードしたいのですが

    すみません。教えてください。VC++を動かしたいのですが ソフトではなく マイクロソフトのサイトからVC++2005をダウンロードしたいと 思っています。webからインストールをしようとしたのですが ・マイクロソフトに登録しなければ手に入らないのでしょうか? ・今でも無償提供ですよね? ・VC++以外ダウンロードするつもりが無いのでダウンロードしたら 解約しようと思っているのですが解約するときに解約料を 場合によってとると同意書に書いてありましたが解約するときに お金がかかるでしょうか? マイクロソフトから手に入れるのがあまり面倒なものであれば 勉強もしなければならないので本の付録についているものを 使用しようと思っています。しかし付録のC++はWin32とCLRしか 無くMFCが入っていないみたいなのですがそれでも もともとあるソースをコンパイル&ビルドした後デバッグをすることは できるでしょうか?

  • EclipseでVC++をつかう

    VC++を使いたいのですが **** Rebuild of configuration Debug for project testcpp **** **** Internal Builder is used for build **** cl /c /EHs /MD /Zi /Ic:\program files (x86)\microsoft visual studio 10.0\vc\include\ /nologo /Fosrc\xxxxx.obj ..\src\xxxxx.cpp Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. cl : コマンド ライン error D8003 : ソース ファイル名がありません Build error occurred, build is stopped Time consumed: 251 ms. となってしまってビルドできません よろしくお願いします

  • VC60とVC70の違いは?

    コンパイル環境のVC60とVC70の具体的な違いってありますでしょうか? 今までVC++6.0を使っており、最近.NETに環境を変えたのですが、6.0で動いてたものが.NETでは動きません。 具体的に言うと、SOAPでWSDL指定のサーバーとの通信を行うのですが、.NETでは通信を行わず、UNKNOWN ERRORと返ってきます。 SOAP通信の方法ですが、SOAPClient生成から、Invokeメソッドで通信を行っています。 6.0と.NETでの違いはコンパイラの違いと思っているのですが。。どなたかご存知の方、ご教授お願いできないでしょうか?

  • Vistaでの分割コンパイル時のVisual Studioの強制ビルドについて

    不思議な現象が発症してしまいました。 Vista(Home Premium)にて Visual Studio2005(学生版) や Visual Studio2008(無料版) で分割コンパイルしたプログラムを コンパイルすると、コンパイル自体は問題ないもののソースのどこも変更していない状態でも F5やビルドをすると強制的に全部のファイルがリビルドされた状態になってしまいます。 同じソースコードでもXPだと変更を自動的にソースから検出してくれて変更がなければそのファイルのリビルドは行わないでいてくれていたのですが・・。 尚、XPの開発環境とVistaの開発環境は同じものを入れています。 ファイル数が多いプログラムだとそれこそ何分もかかってしまうため、これは Vista特有の問題なのかなと思ったのですがこういうことはあるのでしょうか?

  • ビルドとインストールの違いが分からないので教えてく

    ビルドとインストールの違いが分からないので教えてください。 PHPをインストールするとき、何をインストールしているのでしょうか? 「ビルドでコンパイルされたもの」をインストールしているのでしょうか? それとも、インストールするとき、「ソースコードのコンパイルも行なった上で、インストール」しているのでしょうか? また、インストールというのは、一番標準的なものをパックにしたものを、インストールしているという理解でいいのでしょうか? 「ビルドをする」=「自分の好きな組み合わせでソースコードとかライブラリを組み合わせることができる」ってことでしょうか? 「モジュール版PHP」「CGI版PHP」など色々な種類のPHPがある理由が分からないのですが、これは、ビルド内容が違うということでしょうか? また、PHPをインストールするとき、「モジュール版」と「CGI版」を選べるのでしょうか? 一度、インストールしたものに何か追加をしたい際は、 再度ビルドしないといけないのでしょうか? それとも、ビルドと言うのは、一度ビルドしたものに、追加でビルドしていくことができるのでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう