7

1 つは in で、もう1 つは in の2 つのmainエントリがあるとします (他のファイルもありますが、主なエントリは 2 つだけです)。または異なるターゲットに基づいて含めることができるように、ファイルを構成するにはどうすればよいですか? つまり、最終的には、「make target1」を使用してベースを生成し、「make target2」を使用してベースを生成できるようになります。main1.cppmain2.cppCMakeLists.txtmain1.cppmain2.cppexec1main1.cppexec2main2.cpp

4

1 に答える 1

12

メイン以外のすべてのソースからライブラリを作成するケースのように聞こえます。次に、それぞれがライブラリにリンクされている 2 つの実行可能ターゲットを追加するだけです。

add_executable(MyExe1 main1.cpp)
add_executable(MyExe2 main2.cpp)
add_library(MyLib <all the other files>)

target_link_libraries(MyExe1 MyLib)
target_link_libraries(MyExe2 MyLib)

すべてのソースを 2 回含めるだけで、 main2.cpp 以外のすべてと main1.cpp 以外のすべてを含めることができますが、これにはソースを 2 回コンパイルする必要があり、非効率的です。MyExe1MyExe2

于 2012-11-18T14:01:01.437 に答える