cmake: GUI build broken with `-stdlib=libc++` #32331

issue fanquake opened this issue on April 23, 2025
  1. fanquake commented at 1:41 PM on April 23, 2025: member
    master @ 9a4c92eb9ac29204df3d826f5ae526ab16b8ad65
    clang version 20.1.2 (Fedora 20.1.2-3.fc42)
    cmake -B build -DBUILD_GUI=ON -DAPPEND_CXXFLAGS="-stdlib=libc++" -DAPPEND_LDFLAGS="-stdlib=libc++"
    cmake --build build
    <snip>
    cmake --build build -j17 --target bitcoin-qt
    [  0%] Generating bitcoin-build-info.h
    [  0%] Built target secp256k1_precomputed
    [  0%] Built target crc32c
    [  1%] Built target bitcoin_consensus
    [  3%] Built target bitcoin_cli
    [  4%] Built target univalue
    [  7%] Built target minisketch
    [  7%] Built target secp256k1
    [ 12%] Built target bitcoin_crypto
    [ 20%] Built target leveldb
    [ 20%] Built target generate_build_info
    [ 20%] Built target bitcoin_clientversion
    [ 32%] Built target bitcoin_util
    [ 32%] Built target bitcoin_wallet
    [ 32%] Built target bitcoinqt_autogen_timestamp_deps
    [ 43%] Built target bitcoin_common
    [ 44%] Built target bitcoinqt_autogen
    [ 63%] Built target bitcoin_node
    [100%] Built target bitcoinqt
    [100%] Built target bitcoin-qt_autogen_timestamp_deps
    [100%] Built target bitcoin-qt_autogen
    [100%] Linking CXX executable ../../bin/bitcoin-qt
    /usr/bin/ld: CMakeFiles/bitcoin-qt.dir/main.cpp.o: in function `std::__1::__function::__func<$_0, std::__1::allocator<$_0>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > (char const*)>::operator()(char const*&&)':
    /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x18f): undefined reference to `QByteArray::toStdString() const'
    /usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `QString::toStdString() const':
    /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x3b): undefined reference to `QByteArray::toStdString() const'
    /usr/bin/ld: /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0xe0): undefined reference to `QByteArray::toStdString() const'
    /usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `BitcoinApplication::createOptionsModel(bool)':
    /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0xc86): undefined reference to `QByteArray::toStdString() const'
    /usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `initTranslations(QTranslator&, QTranslator&, QTranslator&, QTranslator&)':
    /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x5ab2): undefined reference to `QByteArray::toStdString() const'
    /usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoingui.cpp.o):/usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477: more undefined references to `QByteArray::toStdString() const' follow
    clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    
  2. hebasto commented at 1:56 PM on April 23, 2025: member

    Is it supposed to work without using depends built with -stdlib=libc++?

  3. maflcko added the label Build system on Apr 23, 2025
  4. maflcko added the label GUI on Apr 23, 2025
  5. maflcko added the label Upstream on Apr 23, 2025
  6. maflcko commented at 2:58 PM on April 23, 2025: member

    IIRC it used to work with qt5, but it is unclear if that was intentional or by accident. I guess in any case this is an upstream issue that would need to be fixed in the distro or in qt6, if it is an issue at all?

  7. fanquake commented at 11:28 AM on February 4, 2026: member

    Closing for now. I'm not planning on investigating / debugging this any further.

  8. fanquake closed this on Feb 4, 2026


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-17 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me