首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库中的CMake公共源文件

库中的CMake公共源文件
EN

Stack Overflow用户
提问于 2020-12-17 21:41:57
回答 1查看 74关注 0票数 0

我想在安卓建立项目使用新开发工具包的CMake。我想根据一些标志添加库,这在CMake中是可见的,带有一些公共部分,结果如下所示:

代码语言:javascript
复制
set(INFERENCE_ENGINE TFLITE)
set(COMMON_FILES "${SRC_DIR}/native-lib.cpp
            ${CRF_SRC}/permutohedral.cpp
            ${CRF_SRC}/unary.cpp
            ${CRF_SRC}/pairwise.cpp
            ${CRF_SRC}/objective.cpp
            ${CRF_SRC}/densecrf.cpp
            ${CRF_SRC}/labelcompatibility.cpp
            ${SRC_DIR}/utils.cpp
            ${SRC_DIR}/jniutils.cpp
            ${SRC_DIR}/timer.cpp
            ${SRC_DIR}/inference.cpp
            ${SRC_DIR}/backend/dcrf.cpp
            ${SRC_DIR}/sky/colorCV.cpp
            ${SRC_DIR}/sky/colorLoop.cpp
            ${neon_SRCS}"
        )

if (${INFERENCE_ENGINE} STREQUAL TFLITE)
    add_library(starfiltersdk SHARED
            ${COMMON_FILES}
            ${SRC_DIR}/backend/tflite.cpp
            )
elseif(${INFERENCE_ENGINE} STREQUAL SNPE)
    add_library(starfiltersdk SHARED
            ${COMMON_FILES}
            ${SRC_DIR}/backend/snpe.cpp
            )
endif() 

然而,我得到了:

代码语言:javascript
复制
Cannot find source file:

   src/main/cpp/native-lib.cpp
             libs/densecrf/src/permutohedral.cpp
             libs/densecrf/src/unary.cpp
             libs/densecrf/src/pairwise.cpp
             libs/densecrf/src/objective.cpp
             libs/densecrf/src/densecrf.cpp
             libs/densecrf/src/labelcompatibility.cpp
             src/main/cpp/utils.cpp
             src/main/cpp/jniutils.cpp
             src/main/cpp/timer.cpp
             src/main/cpp/inference.cpp
             src/main/cpp/backend/dcrf.cpp
             src/main/cpp/sky/colorCV.cpp
             src/main/cpp/sky/colorLoop.cpp
             src/main/cpp/sky/blend.cpp

这表明COMMON_FILES变量被视为一个文件。你知道如何修复它吗,或者我应该使用完全不同的方法(来实现add_library的这个通用部分)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-17 23:27:03

CMake区分带引号的参数和不带引号的参数1.通过用引号将文件列表括起来,您创建了一个长参数,而add_library希望将每个源文件作为单独的参数接收。

set(COMMON_FILES ...)更改为:

代码语言:javascript
复制
set(COMMON_FILES ${SRC_DIR}/native-lib.cpp
        ${CRF_SRC}/permutohedral.cpp
        ${CRF_SRC}/unary.cpp
        ${CRF_SRC}/pairwise.cpp
        ${CRF_SRC}/objective.cpp
        ${CRF_SRC}/densecrf.cpp
        ${CRF_SRC}/labelcompatibility.cpp
        ${SRC_DIR}/utils.cpp
        ${SRC_DIR}/jniutils.cpp
        ${SRC_DIR}/timer.cpp
        ${SRC_DIR}/inference.cpp
        ${SRC_DIR}/backend/dcrf.cpp
        ${SRC_DIR}/sky/colorCV.cpp
        ${SRC_DIR}/sky/colorLoop.cpp
        ${neon_SRCS}
    )

应该可以解决您显示的错误消息。

1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65341886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档