首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过CMake添加一个子项目

通过CMake添加一个子项目
EN

Stack Overflow用户
提问于 2020-01-25 23:43:47
回答 2查看 1.2K关注 0票数 2

阿帕奇箭子模块存储在thirdparty/apache_arrow/cpp中,所以我的主CMakeLists.txt看起来像

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.0.0)
project(arrow_parcer VERSION 0.1.0)

add_subdirectory(src)
add_subdirectory(thirdparty/apache_arrow/cpp)

thirdparty/apache_arrow中存储整个阿帕奇箭项目。

当我试图构建项目时,最后的输出行如下:

代码语言:javascript
复制
[cmake] CMake Error: INSTALL(EXPORT) given unknown export "arrow_targets"
[cmake] Generating done
[cms-driver] Error during CMake configure: [cmake-server] Failed to compute build system.

Apache可以很容易地由CMakeLists.txt在/cpp文件夹构建,但是如果我试图通过add_subdirectory包含它,为什么会出现错误呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-27 21:18:02

Apache C++不是要使用add_subdirectory构建的,而是应该使用CMake的设施来构建它:

代码语言:javascript
复制
ExternalProject_Add(arrow_ep 
    URL "https://www.apache.org/dist/arrow/arrow-0.15.1/apache-arrow-0.15.1.tar.gz"
    SOURCE_SUBDIR cpp)

除了使用URL之外,您还可以使用不同的提供程序,比如GIT_REPOSITORY

票数 3
EN

Stack Overflow用户

发布于 2021-12-15 13:03:08

如果你真的不需要安装,这里有一个黑客-y的方法来做到这一点。在CMakeLists.txt添加箭头的源dir中,定义自己的install

代码语言:javascript
复制
function(install)
endfunction()
add_subdirectory(${arrow_SOURCE_DIR}/cpp ${arrow_BINARY_DIR})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59914369

复制
相关文章

相似问题

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