アプリケーションは主にC
で記述しますが、一部のサブモジュールはC++
(Linuxの場合)で記述します。問題は、いくつかのサブディレクトリにCMakeLists.txt
を使用し、別のサブディレクトリにgcc
を使用するためにg++
ファイルを書き込む方法です。
コンパイラとリンカは、特に設定されていない限り、通常、ファイル拡張子によって決定されます。ファイルの末尾に問題がない限り、コードはコンパイルされ、正しいコンパイラにリンクされます。
ちなみに、CとC++を混在させる場合は、正しいexternC宣言を行うことを忘れないでください。
CMakeはこれを自動的に行います。 CMakeLists.txtファイルで両方のタイプのファイルを自由に混在させることができます。
. . .
add_executable(
my_program
code.cpp
more_code.c
)
私はいつもこれをします、そしてそれはうまくいきます。
ソースファイルのLANGUAGEプロパティを「CXX」に設定できます。 ドキュメント を参照してください。
G ++とgccの違いは、基本的にg ++が-lstdc ++をリンカーに渡すことです。 c ++モジュールの明示的な依存関係としてc ++標準ライブラリを追加するだけです。
明確にするために、gccはC++コードをコンパイルできます。 gccとg ++はこの点で同じです。違いは、g ++を使用する場合、libstdc ++にリンクするようにコンパイラーに明示的に指示する必要がないことだけです。