2013-05-22 10 views
5

ビルドプロセスとは別に単一の.cppファイルをコンパイルしようとしています。リンカーを呼び出さずに.cppファイルだけをオブジェクトファイルにコンパイルする方法

私がフル・ビルドを行う場合、コンパイル・ステップは、プロジェクトの作成時に構成されたディレクトリーに出力します。

しかし、私はコンパイルを頼むだけで、ソースファイルと同じディレクトリに移動し、さらに悪いことに、コンパイルを実行しているときにオブジェクトファイルを実行可能ファイルにリンクします。

注C++ 11用にclang ++でコンパイルしていますが、要求されていないリンクのためにClang ++。exeを2度目に呼び出す理由がないとは思いません。それは第二を出力している理由

clang++.exe -std=c++11 -stdlib=libstdc++ -c GOTW.cpp -o GOTW.o 
1 warning generated. 
clang++.exe -o GOTW.exe GOTW.o 

私は理解していない:それを構築する場合Compile Current Fileが行われた場合、この

-------------- Build: Debug in GOTW (compiler: GNU GCC Compiler)--------------- 

clang++.exe -Wall -fexceptions -g -std=c++11 -stdlib=libstdc++ -c     
C:\Work\test\2010\C++11\CLang\GOTW\gotw.cpp -o obj\Debug\GOTW.o 
clang++.exe -o bin\Debug\GOTW.exe obj\Debug\GOTW.o  
Output size is 203.50 KB 
Process terminated with status 0 (0 minutes, 11 seconds) 
0 errors, 6 warnings (0 minutes, 11 seconds) 

はまだそれがこれを行いん

EDIT1

ステップ、またビルドのようにobjとbinディレクトリを使用する方法を教えてください

+0

に.cppファイルをコンパイルし、出力、彼らが実行している正確なコマンドをすることができます。関連するオプションを見つけて、コマンドを取得して適切に変更して、出力を必要な場所に取得してください。 –

+0

Codeblocksは正確なコマンドを出力しているだけで、予想以上に多くのコマンドを実行していますが、出力ディレクトリで行うビルド設定は無視されます –

+0

2番目のソースファイルを追加してコンパイルするように尋ねると、リンカーが呼び出されないようにします。b)ソースがあるディレクトリを直接ビルドするのではなくビルドディレクトリにコンパイルします。 –

答えて

5

Use the -c option.

-c

ラン上記のすべてに加え、アセンブラ、 オブジェクトファイル "の.o" ターゲットを生成します。

1

グラム++ -c * .cppファイル それはほとんどのシステムを構築するの.o

+0

それは本当の声明ですが、質問には答えません。あなたはその質問を読んだのか、それともタイトルだけを読んだのですか? –

+0

...私は間違いなく密接に質問を読む必要があります... – dcnocomment