2

Apache Arrow子模块存储在thirdparty/apache_arrow/cpp,所以我的主要 CMakeLists.txt 看起来像

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存储的整个Apache Arrow项目中。

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

[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 Arrow 可以通过文件夹中的 CMakeLists.txt 轻松构建/cpp,但是如果我尝试将其包含在 中,为什么会出现错误add_subdirectory

4

2 回答 2

2

Apache Arrow C++ 并不是要使用 构建add_subdirectory的,而是应该使用 CMake 的ExternalProject_Add工具来构建它:

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,例如 .

于 2020-01-27T21:18:02.570 回答
1

如果您真的不需要设置安装,这里有一个 hack-y 方法来做到这一点。在CMakeLists.txt添加箭头的源目录中,您定义自己的install.

function(install)
endfunction()
add_subdirectory(${arrow_SOURCE_DIR}/cpp ${arrow_BINARY_DIR})
于 2021-12-15T13:03:08.253 回答