0

いくつかのサブディレクトリを持つプロジェクトがあり、そのサブディレクトリの 1 つに .cpp および .h ファイルを生成する必要があるとします。本当の事実: そのディレクトリで (< と > なしで) コマンドを実行すると、有効なファイルが生成されます。

では、cmake を使用して同じことを行うにはどうすればよいでしょうか。

Cmakeにはadd_custom_commandがありますが、何もしないので使えません。execute_process は何かを実行するため優れていますが、方法が間違っています。

execute_process(COMMAND "protoc -I=\".\" --cpp_out=\".\" protocol.proto"
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})

残念ながら、cmake はコマンドを正しく実行できないため、結果は何もありません。そのため、「protoc」は「そのようなファイルまたはディレクトリはありません」と出力します。

追加/編集: この execute_process 呼び出しは、protocol.proto ファイルと同じディレクトリにある CMakeLists.txt にあります。

このコマンドを単純に実行できないのはなぜですか?

4

1 に答える 1

4

COMMAND引数を引用符で囲む必要はありません。

execute_process(COMMAND protoc -I=. --cpp_out=. protocol.proto
                WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
于 2013-01-12T21:44:48.420 に答える