⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
macOS

先决条件

安装 Xcode 和 Homebrew。然后,使用以下命令安装所需的软件包:

brew install git cmake ninja

构建 DuckDB

克隆并构建 DuckDB,操作如下。

git clone https://github.com/duckdb/duckdb
cd duckdb
GEN=ninja make

构建成功后,您可以在 build 目录中找到 duckdb 二进制文件

build/release/duckdb

对于不同的构建配置(如 debug, relassert 等),请参阅构建配置页面

故障排除

构建失败:未找到文件 'string'

问题:在 macOS 上构建失败,并出现以下错误:

FAILED: third_party/libpg_query/CMakeFiles/duckdb_pg_query.dir/src_backend_nodes_list.cpp.o
/Library/Developer/CommandLineTools/usr/bin/c++ -DDUCKDB_BUILD_LIBRARY -DEXT_VERSION_PARQUET=\"9cba6a2a03\" -I/Users/builder/external/duckdb/src/include -I/Users/builder/external/duckdb/third_party/fsst -I/Users/builder/external/duckdb/third_party/fmt/include -I/Users/builder/external/duckdb/third_party/hyperloglog -I/Users/builder/external/duckdb/third_party/fastpforlib -I/Users/builder/external/duckdb/third_party/skiplist -I/Users/builder/external/duckdb/third_party/fast_float -I/Users/builder/external/duckdb/third_party/re2 -I/Users/builder/external/duckdb/third_party/miniz -I/Users/builder/external/duckdb/third_party/utf8proc/include -I/Users/builder/external/duckdb/third_party/concurrentqueue -I/Users/builder/external/duckdb/third_party/pcg -I/Users/builder/external/duckdb/third_party/tdigest -I/Users/builder/external/duckdb/third_party/mbedtls/include -I/Users/builder/external/duckdb/third_party/jaro_winkler -I/Users/builder/external/duckdb/third_party/yyjson/include -I/Users/builder/external/duckdb/third_party/libpg_query/include -O3 -DNDEBUG -O3 -DNDEBUG   -std=c++11 -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX15.1.sdk -fPIC -fvisibility=hidden -fcolor-diagnostics -w -MD -MT third_party/libpg_query/CMakeFiles/duckdb_pg_query.dir/src_backend_nodes_list.cpp.o -MF third_party/libpg_query/CMakeFiles/duckdb_pg_query.dir/src_backend_nodes_list.cpp.o.d -o third_party/libpg_query/CMakeFiles/duckdb_pg_query.dir/src_backend_nodes_list.cpp.o -c /Users/builder/external/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp
In file included from /Users/builder/external/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp:35:
/Users/builder/external/duckdb/third_party/libpg_query/include/pg_functions.hpp:4:10: fatal error: 'string' file not found
    4 | #include <string>

解决方案:用户反馈重新安装 Xcode 解决了他们的问题。请参阅 DuckDB GitHub issuesStack Overflow 上的相关讨论。

警告:尝试重新安装 Xcode 套件可能会影响您系统上的其他应用程序。请谨慎操作。

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install

Debug 构建打印 malloc 警告

问题:macOS 上的 debug 构建打印 malloc 警告,例如:

duckdb(83082,0x205b30240) malloc: nano zone abandoned due to inability to reserve vm space.

解决方案:为防止此问题,请将 MallocNanoZone 标志设置为 0

MallocNanoZone=0 make debug

要将此更改应用于您未来的终端会话,您可以将以下内容添加到您的 ~/.zshrc 文件中

export MallocNanoZone=0