1

私はgcc(qcc)をラップしているように見えるツールチェーンで遊んでいますが、いくつかの目的でg++も使用しています。これは、同じアーキテクチャ用であったとしても(libエラーがないために)、g(q)ccを使用してg++で構築したlibをリンクできない場合に少し混乱を引き起こしました。もう少し調べてみると、g ++は基本的にいくつかのデフォルトフラグとファイル拡張子の解釈メカニズムがわずかに異なるgccであることがわかりました(私が一瞥した他の違いがあるかもしれません)。同等のg++呼び出しに相当するgccに渡すことができるフラグを正確に知りたいのですが。例えば:

g++ -g -c hello.cpp   // I know at the very least that this links in stl
gcc -g -c -???        // I want the exact same result as I got with g++... what flags do I use?

ツールチェーンの設定方法により、gcc呼び出しをg++に単純に置き換えることは困難です。どのフラグを渡す必要があるかを知る方がはるかに簡単です。

4

1 に答える 1

3

gcc使用とC ++g++コードのコンパイルの違いは、(a)、、、および拡張子がCではなくC ++としてg++ファイルをコンパイルすることと、(b)C ++標準ライブラリと自動的にリンクすることです( )。マニュアルページを参照してください。.c.h.i-lstdc++

.cしたがって、、、.h.またはファイルをC ++としてコンパイルしていないと仮定すると、のように動作.iさせるために必要なのは、コマンドラインオプションをリンカーフラグに追加することだけです。これらの他のファイルをC++としてコンパイルする場合、を追加できますが、代わりに、またはファイルに名前を変更することをお勧めします(プリコンパイル済みヘッダーを使用している場合は、そのままにしておくことができます)。gccg++-lstdc++-x c++.cc.ii.h

于 2012-05-31T04:28:48.657 に答える