CMake不会使用add_executable构建可执行文件

sav*_*avi 5 c++ executable android cmake android-studio

我是CMake的新手,我在使用CMake创建可执行文件时遇到问题.我正在尝试从单个CMakeLists.txt文件构建可执行文件和共享库.我的CMakeLists.txt如下:

cmake_minimum_required(VERSION 3.4.1)
project (TestService)

include_directories(
    src/main/cpp/
    libs/zlib/include/
)

add_library(libz SHARED IMPORTED)

set_target_properties(libz PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/libs/zlib/libs/${ANDROID_ABI}/libz.so)

find_library(log-lib log)

add_executable(
    test_utility
    src/main/cpp/test_utility.cpp
    src/main/cpp/storage.cpp
)

target_link_libraries(test_utility ${log-lib} libz)

add_library(
    processor
    SHARED
    src/main/cpp/com_example_testservice.cpp
    src/main/cpp/storage.cpp
)

target_link_libraries(processor libz ${log-lib})
Run Code Online (Sandbox Code Playgroud)

然而,当我从命令行使用android studio/gradlew构建我的项目时,我只看到处理器创建了process.utility,从未创建test_utility可执行文件.我的CMakeLists.txt中有什么不对?

sky*_*ack 0

如果没有看到实际的命令,很难说出幕后发生了什么。
话虽如此,您可能只使用make processor显式构建processor目标。从您CMakeLists.txt可以看到processor目标没有test_utility目标作为依赖项。

要编译后者,您可以:

  • 要么使用make, 来创建所有目标
  • 或运行make test_utility, 显式构建它