std::println/print 在 Winlibs MinGW 中不起作用(gcc 14.1)

问题描述 投票:0回答:1

我正在 GCC 14.1 中测试新的

<print>
库,并尝试使用
std::println()
编译一个程序,结果却收到了这个消息(出于隐私考虑,我已从
Users
目录中删除了我的名字):

C:/Users/name/Documents/Compilers/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\name\AppData\Local\Temp\ccFbwKqp.o:testing.cpp:(.text$_ZSt14vprint_unicodeP6_iobufSt17basic_string_viewIcSt11char_traitsIcEESt17basic_format_argsISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE[_ZSt14vprint_unicodeP6_iobufSt17basic_string_viewIcSt11char_traitsIcEESt17basic_format_argsISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE]+0x107): undefined reference to `std::__open_terminal(_iobuf*)'
C:/Users/name/Documents/Compilers/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\name\AppData\Local\Temp\ccFbwKqp.o:testing.cpp:(.text$_ZSt14vprint_unicodeP6_iobufSt17basic_string_viewIcSt11char_traitsIcEESt17basic_format_argsISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE[_ZSt14vprint_unicodeP6_iobufSt17basic_string_viewIcSt11char_traitsIcEESt17basic_format_argsISt20basic_format_contextINSt8__format10_Sink_iterIcEEcEE]+0x240): undefined reference to `std::__write_to_terminal(void*, std::span<char, 18446744073709551615ull>)'
collect2.exe: error: ld returned 1 exit status

我从这个网站(特别是这个)获得了编译器,并且之前他们的编译器从未遇到过任何问题。我尝试在编译器资源管理器上编译此代码并且运行良好。谁能告诉我为什么我的机器上会发生这种情况?

最小可重现示例(

g++ -std=c++2c -o testing testing.cpp
):

#include <print>
int main()
{
    std::println("hello world");
}
c++ gcc g++ println godbolt
1个回答
0
投票

您可以从 gcc 14.1 变更通知中了解 std::print 和 std::println (在 Windows 上您需要使用 -lstdc++exp 链接)。

© www.soinside.com 2019 - 2024. All rights reserved.