A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/ziglang/zig/wiki/Troubleshooting-Build-Issues below:

Troubleshooting Build Issues · ziglang/zig Wiki · GitHub

If you get one of these:

undefined reference to `_ZNK4llvm17SubtargetFeatures9getStringB5cxx11Ev'
undefined reference to `llvm::SubtargetFeatures::getString() const'

This is because of C++'s Dual ABI. Most likely LLVM was compiled with one compiler while Zig was compiled with a different one, for example GCC vs clang.

LLVM, Clang, and Zig must all be compiled with the same C++ compiler.

Undefined references in liblldELF.a

Building with LLVM 17 has zlib as a new requirement.

If your system has static zlib then -DZIG_STATIC_ZLIB=ON needs to be specified to use it (e.g. cmake .. -DZIG_STATIC_ZLIB=ON).

Arch Linux, Gentoo, Fedora 32+

The Clang packages in these distributions do not contain static libraries, which Zig tries to use by default. Instead, one should link against the shared lib libclang-cpp.so.

For building stage1, set ZIG_SHARED_LLVM:

cmake .. -DZIG_SHARED_LLVM=ON

For building stage2, pass -Dstatic-llvm=false to Zig.

Fedora also doesn't ship by default with the static libraries for lib stdc++. This will result in link errors for symbols like std::string. You can fix this by installing the following package: dnf install libstdc++-static.

The LLVM repositories/packages are listed at https://apt.llvm.org/. The following packages that are not listed must be installed: liblld-17-dev, libclang-17-dev (as well as at least libllvm17 from the listed packages).

On macOS, you must force static linking of LLVM using -DZIG_STATIC_LLVM=on. The full invocation will then look like:

cmake .. -DCMAKE_PREFIX_PATH="$(brew --prefix llvm@17);$(brew --prefix zstd)" -DZIG_STATIC_LLVM=on

After upgrading LLVM, it's often necessary to remove the CMake cache and build directories:

rm CMakeCache.txt
rm -rf CMakeFiles

Then try running the cmake command again.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4