macOS
Voraussetzungen
Installieren Sie Xcode und Homebrew. Installieren Sie anschließend die benötigten Pakete mit:
brew install git cmake ninjaDuckDB bauen
Klonen und bauen Sie DuckDB wie folgt.
git clone https://github.com/duckdb/duckdbcd duckdbGEN=ninja makeWenn der Build erfolgreich abgeschlossen ist, finden Sie die Binärdatei duckdb im Verzeichnis build:
build/release/duckdbFür andere Build-Konfigurationen (debug, relassert usw.) siehe die Seite Build-Konfiguration.
Fehlerbehebung
Build-Fehler: 'string' file not found
Problem: Der Build schlägt unter macOS mit folgendem Fehler fehl:
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.cppIn 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>Lösung: Nutzer berichten, dass eine Neuinstallation von Xcode das Problem behoben hat. Siehe die zugehörigen Diskussionen in den DuckDB-GitHub-Issues und auf Stack Overflow.
Warning Eine Neuinstallation Ihrer Xcode-Suite kann andere Anwendungen auf Ihrem System beeinträchtigen. Gehen Sie vorsichtig vor.
sudo rm -rf /Library/Developer/CommandLineToolsxcode-select --installDebug-Build gibt malloc-Warnung aus
Problem:
Der debug-Build unter macOS gibt eine malloc-Warnung aus, z. B.:
duckdb(83082,0x205b30240) malloc: nano zone abandoned due to inability to reserve vm space.Lösung:
Um das zu verhindern, setzen Sie das Flag MallocNanoZone auf 0:
MallocNanoZone=0 make debugUm diese Änderung für künftige Terminalsitzungen festzulegen, können Sie Folgendes in Ihre Datei ~/.zshrc eintragen:
export MallocNanoZone=0