-target选项在CMake中意味着什么?

use*_*110 14 cmake

C:\blah\duh\bin\Android>"C:\Program Files (x86)\CMake\bin\cmake.exe" --build . --target SysTest --use-stderr -- -j 8    
Run Code Online (Sandbox Code Playgroud)

我有上面的CMake构建命令.我明白了 - 建造.将从当前目录中的Makefile构建.但是选项-target SysTest和-j 8有什么作用呢?这是--build的CMake文档,但我承认我不理解--target的使用.

 --build <dir>
Build a CMake-generated project binary tree.

This abstracts a native build tool’s command-line interface with the following options:

<dir>          = Project binary directory to be built.
--target <tgt> = Build <tgt> instead of default targets.
--config <cfg> = For multi-configuration tools, choose <cfg>.
--clean-first  = Build target 'clean' first, then build.
                 (To clean only, use --target 'clean'.)
--use-stderr   = Ignored.  Behavior is default in CMake >= 3.0.
--             = Pass remaining options to the native tool.
Run Code Online (Sandbox Code Playgroud)

ste*_*ire 19

如果我有

add_executable(hello hello.cpp)

add_executable(goodbye goodbye.cpp)
Run Code Online (Sandbox Code Playgroud)

然后CMake为每个可执行文件创建"构建目标".它还创建了其他构建目标,例如构建所有内容的"所有"构建目标.

默认情况下,如果未指定目标,则执行'all'目标,这意味着构建了hello和goodbye.

如果您只想构建其中一个目标,则可以指定要构建的目标.