在更现代的 cmake 中使用箭头镶木地板的最佳方法是什么?

Ami*_*mir 2 c++ cmake apache-arrow

以下是对我有用的解决方案,但不确定这是否是最好的方法。我用brew来安装它。不幸的是,vcpkg 目前无法工作。我不喜欢这个解决方案的是我需要单独设置Parquet_DIRfind_package(Parquet)

set(Parquet_DIR /usr/local/lib/cmake/arrow)

find_package(Arrow CONFIG REQUIRED)
find_package(Parquet CONFIG REQUIRED)
target_link_libraries(database PRIVATE arrow_shared parquet_shared)
Run Code Online (Sandbox Code Playgroud)

fab*_*ian 5

您可以通过PATHS搜索到find_package.

您可能还想通过传递 来防止在其他地方进行搜索NO_DEFAULT_PATH

查看find_package文档

find_package(Arrow CONFIG REQUIRED)
find_package(Parquet CONFIG REQUIRED
    PATHS /usr/local/lib/cmake/arrow
    NO_DEFAULT_PATH
)
target_link_libraries(database PRIVATE arrow_shared parquet_shared)
Run Code Online (Sandbox Code Playgroud)

(上面的代码片段假设Arrow不依赖于Parquet包。)