2017-01-11 7 views
-1

私は、C++プロジェクトをコンパイルする最も効果的な手段を検討しようとしています。私はJavaのようなより管理された言語に固執するので、CMakeファイルはちょっと鈍いです。ライブラリとしてコンパイルするには?

私の主な問題は、ライブラリとして何をコンパイルするのかと、どうすれば一緒にコンパイルできますか?私は、私のプログラムの中で、ヘッダー付きのさまざまなファイルでさまざまなクラスの主な機能を持っています。これらのファイルを一緒に扱う最も一般的な方法は何ですか?メイン関数をクラスとは別にコンパイルしてリンクしなければならないのですか、それともライブラリのために少し小さいにもかかわらず共有ライブラリでなければなりませんか?

主に、一緒にコンパイルする必要があるもの、簡単にリンクするもの、そしてこのすべての仕組みの標準/ベストプラクティスをより明確に説明する人のための一般的なガイドラインを探しています。

私は、コンパイラがヘッダーファイルとソースファイルをオブジェクトファイルに変換し、それらをバイナリとして結合する必要があることを理解しています。私はバイナリに入るべきものにちょうど混乱しています。

+0

他のプロセスでも必要なメソッドがある場合は、それらをライブラリに入れる方がよいでしょう。単一のバイナリのみをデプロイする場合は、ライブラリを静的にしますが、バイナリサイズが大きくなります。 – VivekD

+2

疑いがあります:ライブラリをまったく使用しないでください。プロジェクトが成長すると、コードをライブラリとバイナリに分割することができます。 – usr1234567

+1

Javaで実行不可能なjarを使用するのとほぼ同じ場合に、ライブラリを使用します。 – user4581301

答えて

1

実行可能ファイルのみのコードが必要な場合は、すべてのオブジェクトファイルをリンクすることができます。ライブラリは、異なる実行ファイルに同じ関数/オブジェクトファイルが必要な場合に便利です。

もちろん、プロジェクトが大きくなると、ライブラリを出力するサブプロジェクトを使用して、メインプロジェクトファイルとサブプロジェクトライブラリをリンクすることもできます。

関連する問題