LoginSignup
1
0

More than 1 year has passed since last update.

CMakeで複数ソースファイルの扱い - 単一プログラム作成VSライブラリ作成

Posted at

いつかは避けられないソースファイルの適切な分割や、ライブラリの作成。
単発のプログラム作成とライブラリ作成におけるソースファイルのCMakeでの指定では使用するディレクティブが違います。

C++専門ではないが実務で書く必要が出てきた僕みたいな人のための記事です。

複数ソースファイルで単一のプログラムを作成する時

学びはじめは、ソースファイル分割しながらビルドするときはadd_executableディレクティブを使ってました。この程度だとCMakeあってもなくても労力は変わりませんね。

add_executable(ProjectName main.cpp foo.cpp)

複数ソースファイルでライブラリを作成する時

でも、ライブラリ作成するとなるとadd_executableは使えません。
ソースファイル分割しながら、CMakeでライブラリを作成するときはadd_libraryを代わりに使いましょう。

set BRABRA_FILES{
  main.cpp,
  bar.cpp,
  bar.hpp
}

add_library(ProjectName SHARED ${BRABRA_FILES})

ライブラリを作成する必要が生じたぐらいのタイミングから、リンクやソースファイルの指定がCMakeなしでは面倒になってきます。これらをCMakeで効率的に指定することは、実務では避けられません。
g++にオブション渡しまくって解決するのは時間がもったいないです。
CMakeに感謝し、巨人の肩に乗りましょう!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0