如何在 add_subdirectory 函数中设置正确的目录路径?
How to set correct directory path in add_subdirectory function?
使用 Android Studio 并有两个库,Lib(A) 和 Lib(B),每个项目有两个 CMakeList.txt。
我想知道如何在 Lib(A) 中设置 add_subdirectory 因为在 运行 模式下无法检测 Lib(B) 中的功能,我猜 compiler/Gradle 会忽略Lib(B) 的 CMakelist。
库结构:
A
|--src
|--main
|--JAVA
|--CPP
|-CMakelist.txt
|-...CPP
和
B
|--src
|--main
|--JAVA
|--CPP
|-CMakelist.txt
|-...CPP
库(A) CMakelist:
cmake_minimum_required(VERSION 3.18.1)
project("A")
add_subdirectory("src/main/cpp/")
add_library(A
SHARED
a.cpp)
find_library(log-lib
log )
target_link_libraries(Services
${log-lib} )
库(B)CMakelist:
cmake_minimum_required(VERSION 3.18.1)
project("B")
add_library(B
SHARED
b.cpp)
find_library(log-lib
log )
我测试了:
add_subdirectory("src/main/cpp/")
and
add_subdirectory("com.myapp.B/src/main/cpp/")
但不起作用,错误是:
CMake Error at CMakeLists.txt:3 (add_subdirectory):
add_subdirectory given source "src/main/cpp/" which is not an existing
directory.
add_subdirectory
的第一个参数采用包含要包含的 CMakeLists.txt
文件的目录的路径。如果此路径是相对路径,则相对于包含当前正在解析的 CMakeLists.txt
的目录进行解析。
如果指定导航到父目录的绝对路径或相对路径,则需要指定要用作第二个参数的构建目录。
add_subdirectory(../../../../B/src/main/CPP B_build)
使用 Android Studio 并有两个库,Lib(A) 和 Lib(B),每个项目有两个 CMakeList.txt。
我想知道如何在 Lib(A) 中设置 add_subdirectory 因为在 运行 模式下无法检测 Lib(B) 中的功能,我猜 compiler/Gradle 会忽略Lib(B) 的 CMakelist。
库结构:
A
|--src
|--main
|--JAVA
|--CPP
|-CMakelist.txt
|-...CPP
和
B
|--src
|--main
|--JAVA
|--CPP
|-CMakelist.txt
|-...CPP
库(A) CMakelist:
cmake_minimum_required(VERSION 3.18.1)
project("A")
add_subdirectory("src/main/cpp/")
add_library(A
SHARED
a.cpp)
find_library(log-lib
log )
target_link_libraries(Services
${log-lib} )
库(B)CMakelist:
cmake_minimum_required(VERSION 3.18.1)
project("B")
add_library(B
SHARED
b.cpp)
find_library(log-lib
log )
我测试了:
add_subdirectory("src/main/cpp/")
and
add_subdirectory("com.myapp.B/src/main/cpp/")
但不起作用,错误是:
CMake Error at CMakeLists.txt:3 (add_subdirectory):
add_subdirectory given source "src/main/cpp/" which is not an existing
directory.
add_subdirectory
的第一个参数采用包含要包含的 CMakeLists.txt
文件的目录的路径。如果此路径是相对路径,则相对于包含当前正在解析的 CMakeLists.txt
的目录进行解析。
如果指定导航到父目录的绝对路径或相对路径,则需要指定要用作第二个参数的构建目录。
add_subdirectory(../../../../B/src/main/CPP B_build)