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

issue fanquake openend this issue on April 23, 2025
  1. fanquake commented at 1:41 pm on April 23, 2025: member
     0master @ 9a4c92eb9ac29204df3d826f5ae526ab16b8ad65
     1clang version 20.1.2 (Fedora 20.1.2-3.fc42)
     2cmake -B build -DBUILD_GUI=ON -DAPPEND_CXXFLAGS="-stdlib=libc++" -DAPPEND_LDFLAGS="-stdlib=libc++"
     3cmake --build build
     4<snip>
     5cmake --build build -j17 --target bitcoin-qt
     6[  0%] Generating bitcoin-build-info.h
     7[  0%] Built target secp256k1_precomputed
     8[  0%] Built target crc32c
     9[  1%] Built target bitcoin_consensus
    10[  3%] Built target bitcoin_cli
    11[  4%] Built target univalue
    12[  7%] Built target minisketch
    13[  7%] Built target secp256k1
    14[ 12%] Built target bitcoin_crypto
    15[ 20%] Built target leveldb
    16[ 20%] Built target generate_build_info
    17[ 20%] Built target bitcoin_clientversion
    18[ 32%] Built target bitcoin_util
    19[ 32%] Built target bitcoin_wallet
    20[ 32%] Built target bitcoinqt_autogen_timestamp_deps
    21[ 43%] Built target bitcoin_common
    22[ 44%] Built target bitcoinqt_autogen
    23[ 63%] Built target bitcoin_node
    24[100%] Built target bitcoinqt
    25[100%] Built target bitcoin-qt_autogen_timestamp_deps
    26[100%] Built target bitcoin-qt_autogen
    27[100%] Linking CXX executable ../../bin/bitcoin-qt
    28/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*&&)':
    29/usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x18f): undefined reference to `QByteArray::toStdString() const'
    30/usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `QString::toStdString() const':
    31/usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x3b): undefined reference to `QByteArray::toStdString() const'
    32/usr/bin/ld: /usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0xe0): undefined reference to `QByteArray::toStdString() const'
    33/usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `BitcoinApplication::createOptionsModel(bool)':
    34/usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0xc86): undefined reference to `QByteArray::toStdString() const'
    35/usr/bin/ld: ../../lib/libbitcoinqt.a(bitcoin.cpp.o): in function `initTranslations(QTranslator&, QTranslator&, QTranslator&, QTranslator&)':
    36/usr/include/x86_64-linux-gnu/qt6/QtCore/qstring.h:1477:(.text+0x5ab2): undefined reference to `QByteArray::toStdString() const'
    37/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
    38clang++: 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?

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: 2025-04-29 15:12 UTC

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