gpt4 book ai didi

gradle - 使用 gradle 构建 cmake ExternalProject

转载 作者:行者123 更新时间:2023-12-03 05:10:40 26 4
gpt4 key购买 nike

我正在尝试将现有的 native 库用作 android 项目的一部分。我按照有关将 C 和 C++ 代码添加到 android studio 项目的说明进行操作。我到了我有一个正常工作的 CMakeLists.txt 文件(独立测试)的地步,我已经指示 gradle 使用它来编译 native 代码。

我使用的库使用 make 所以我使用 ExternalProject_Add 来指示 cmake 如何编译它。以下是相关代码:

ExternalProject_Add(foo
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../libfoo
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../libfoo/configure
--host=arm-linux-androideabi
BUILD_COMMAND ${MAKE}
INSTALL_COMMAND true)

这是模块的 build.gradle 的相关部分:
externalNativeBuild {
cmake {
path '../cpp/CMakeLists.txt'
}
}

当我运行 ./gradlew assembleDebug ,外部项目未编译。添加依赖于 bar 的可执行文件(名为 foo )后在 cmake 中,配置步骤运行但构建步骤不运行。我修改了库的代码,使编译失败,但 gradle 无论如何都会返回成功)。

这是 ./gradlew assembleDebug 输出的最后几行在这些变化之后。
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
[6/10] Performing build step for 'foo'
[7/10] Performing install step for 'foo'
[8/10] Completed 'foo'
[9/10] Building C object CMakeFiles/bar.dir/bar.c.o
[10/10] Linking C executable bar

BUILD SUCCESSFUL in 18s

任何想法发生了什么?我究竟做错了什么?

我正在使用 gradle 4.1 和 cmake 3.6。

最佳答案

你应该使用 BUILD_IN_SOURCE ON 否则你的BINARY_DIR在别的地方所以make恕我直言,什么也不做。

关于gradle - 使用 gradle 构建 cmake ExternalProject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com