主にアプリケーションをC
に書き込みますが、一部のサブモジュールはC++
(Linuxの場合)に書かれています。問題は、CMakeLists.txt
ファイルをいくつかのサブディレクトリにg++
、別のサブディレクトリにgcc
を使用するように書き込む方法です。CMAKEとCとC++の混合
答えて
コンパイラとリンカは、通常設定されていない場合はファイル拡張子によって決まります。したがって、ファイルのエンディングが問題ない限り、コードはコンパイルされ、正しいコンパイラにリンクされます。
CおよびC++を混在させる場合は、正しいextern C宣言を覚えておいてください。
g ++とgccの違いは、基本的にg ++が-lstdC++をリンカに渡すことです。 C++標準ライブラリをC++モジュールの明示的な依存関係として追加するだけです。
gccは、C++コードをコンパイルできます。 gccとg ++はこの点で同じです。違いは、g ++を使用する場合、libstdC++にリンクするようにコンパイラに明示的に指示する必要はないということだけです。
ありがとう、私は質問を書き換えました。この部分はOKですが、特定のサブディレクトリにgcc/g ++を指定する方法を知りたいと思います。 – Cartesius00
gccを使い、必要なときにlibstdC++に明示的に依存できる場合、g ++をいくつかのサブディレクトリで使用する必要はありますか? – bames53
既存のCコードとC++コードを混在させる必要があります。 – Cartesius00
ソースファイルのLANGUAGEプロパティを "CXX"に設定できます。 documentationを参照してください。
CMakeはこれを自動的に行います。あなたは自由にあなたのCMakeLists.txtファイル内のファイルの両方のタイプを混在できます。
. . .
add_executable(
my_program
code.cpp
more_code.c
)
私はこのすべての時間を行うと、それだけで動作します。
Cヘッダーガードが必要であることに注意してください。ですから、code.cppでは、 'extern" C "{#include" more_code.h "}' – Unapiedra
- 1. C++/CLIとCMake
- 2. DSOのSIGSEGV、混合C/C++
- 3. CMake(Objective-CとC++を混在させたCake)でリンクするココアライブラリ
- 4. CMakeとVisual C++ 2010のトラブル
- 5. CとC++を混合してメイクファイルを書く方法
- 6. C++とObjective Cを混在させる
- 7. LINQのツーSQL条件とC#の機能を混合
- 8. のQt - Qtとのstd :: Cを混合++タイプ
- 9. C++/CLIとC#の統合
- 10. OpenCv4AndroidとC++のデータタイプの混同
- 11. 私は混合スウィフトとObjective-Cプロジェクトを有する傘ヘッダ
- 12. 混在したC#とVB.NETプロジェクトのUAC
- 13. CUDA/openCLとC++ AMPの混乱
- 14. C言語でのLuaの埋め込みCとの混同
- 15. c/C++の構造体へのポインタとの混同
- 16. Eigen C++の場合:複素行列と実行列を混合する
- 17. CMAKE for modular C++ framework
- 18. Cとアセンブリファイルを混在させる
- 19. Objective-CとCの混乱の落とし穴は何ですか?
- 20. 混合CおよびC++を使用したプリコンパイル済みヘッダー
- 21. C++/CLRとC++の組み合わせ
- 22. AppVeyor C++ cmake PNGパッケージのコンパイルエラー
- 23. DTDと混合コンテンツ
- 24. ポインタの混乱 - C++
- 25. Cメモリフリーの混乱
- 26. C#のPasswordDeriveBytes混乱
- 27. Objective-Cの++混乱
- 28. CarrierWaveとのファイルタイプの混合
- 29. MySQLとCの統合
- 30. C#とプロローグの統合
から選択されます。 "そうでないと設定されていない場合、つまり' CMakeLists.txt'の一番上にあり、sayの代わりに 'project(myproject)' 'プロジェクト(myproject C)' – congusbongus