Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ SFML程序因窗口标题中的非ASCII字符而崩溃_C++_Sfml - Fatal编程技术网

C++ SFML程序因窗口标题中的非ASCII字符而崩溃

C++ SFML程序因窗口标题中的非ASCII字符而崩溃,c++,sfml,C++,Sfml,所以我只是安装了SFML,并试图做一个简单的程序,编译工作正常,但当我试图运行可执行文件时,它失败了。 首先,我需要做一个技巧来授权应用程序启动,因为苹果没有识别它。我按照这些说明安装SFML 在我运行应用程序时成功授权应用程序后,我收到以下错误消息: 2020-11-24 10:20:55.638 exemple-graphisme1[2768:29657] *** Assertion failure in -[SFWindow setTitle:], NSWindow.m:2490 2020

所以我只是安装了SFML,并试图做一个简单的程序,编译工作正常,但当我试图运行可执行文件时,它失败了。 首先,我需要做一个技巧来授权应用程序启动,因为苹果没有识别它。我按照这些说明安装SFML 在我运行应用程序时成功授权应用程序后,我收到以下错误消息:

2020-11-24 10:20:55.638 exemple-graphisme1[2768:29657] *** Assertion failure in -[SFWindow setTitle:], NSWindow.m:2490
2020-11-24 10:20:55.640 exemple-graphisme1[2768:29657] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: aString != nil'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff204956af __exceptionPreprocess + 242
    1   libobjc.A.dylib                     0x00007fff201cd3c9 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff204be512 +[NSException raise:format:arguments:] + 88
    3   Foundation                          0x00007fff212776c9 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 191
    4   AppKit                              0x00007fff22c7da75 -[NSWindow setTitle:] + 142
    5   libsfml-window.2.5.dylib            0x000000010e5bf4fd _ZN2sf4priv15WindowImplCocoaC2ENS_9VideoModeERKNS_6StringEmRKNS_15ContextSettingsE + 269
    6   libsfml-window.2.5.dylib            0x000000010e5b0e03 _ZN2sf4priv10WindowImpl6createENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE + 67
    7   libsfml-window.2.5.dylib            0x000000010e5b02e5 _ZN2sf6Window6createENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE + 469
    8   libsfml-graphics.2.5.dylib          0x000000010e61e823 _ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE + 99
    9   exemple-graphisme1                  0x000000010e582849 main + 233
    10  libdyld.dylib                       0x00007fff2033e631 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
[1]    2768 abort      ./exemple-graphisme1
我的代码非常简单,只在窗口上画一个点

#include <SFML/Graphics.hpp>
using namespace sf;
using Point = Vector2f;

void draw_point(RenderWindow& w, Point pos, Color color) {
    Vertex p[] = { Vertex(pos, color) };
    w.draw(p, 1, sf::Points);
}

int main()
{
    // ed: The line below originally contained "Hello World"
    RenderWindow    window(VideoMode(640, 480), "Ma super fenêtre");
    window.clear(Color::White);
    draw_point(window, {120, 5}, Color::Red);
    window.display();
    sleep(seconds(10));
    return 0;
}

谢谢你的阅读

所以问题很简单,我编辑了代码,将其翻译成英语,但开始时第一行是

RenderWindow window(VideoMode(640, 480), "Ma super fenêtre");
由于字符“ê”而发生错误


谢谢你的回答,很抱歉这个令人失望的回答

请在启用调试信息的情况下进行构建(在构建时添加
-g
标志),您可能可以在源代码中找到发生此情况的位置。如果没有,则使用调试器捕获断言并向上调用代码堆栈以查看其发生位置。当我使用lldb时,它会在我编写进程启动时崩溃,并且我编辑代码以仅放置第一行,它会崩溃并显示相同的错误消息!你能试着用clang++而不是g++编译吗?我看到libsfml是用clang编译的,它的
std::string
与clang中的不同。@Botje除非明确安装,
g++
clang++
的别名。对于OP:请运行命令
g++-v
,查看您真正使用的编译器。g++-v配置为:--prefix=/Library/Developer/CommandLineTools/usr--with gxx include dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple clang 12.0.0.0(clang-1200.0.32.27)目标:x86_64-apple-darwin20.1.0线程模型:posix InstalledDir:/Library/Developer/CommandLineTools/usr/Bin这就是问题中包含a非常重要的原因。如果要使用非ASCII字符,必须使用
sf::String::fromUtf8(“Ma super fenêtre”)
RenderWindow window(VideoMode(640, 480), "Ma super fenêtre");