Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.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++ Linux上带有SFML的线程_C++_Linux_Eclipse_Multithreading_C++11 - Fatal编程技术网

C++ Linux上带有SFML的线程

C++ Linux上带有SFML的线程,c++,linux,eclipse,multithreading,c++11,C++,Linux,Eclipse,Multithreading,C++11,我尝试将我在PC上的Visual Studio中开发的SFML项目移植到使用Eclipse的Linux上。最后,除了std::thread之外,一切都正常。我只是将其用于一个简单的渲染线程,代码在Windows上的Visual Studio中工作。但当我尝试运行代码时: std::线程渲染读取(渲染) 在Eclipse中的Linux上,存在一个错误: [xcb]排队时队列中存在未知请求 [xcb]这很可能是一个多线程客户端,并且没有调用xinithreads [xcb]正在中止,很抱歉

我尝试将我在PC上的Visual Studio中开发的SFML项目移植到使用Eclipse的Linux上。最后,除了std::thread之外,一切都正常。我只是将其用于一个简单的渲染线程,代码在Windows上的Visual Studio中工作。但当我尝试运行代码时:

std::线程渲染读取(渲染)


在Eclipse中的Linux上,存在一个错误:

[xcb]排队时队列中存在未知请求
[xcb]这很可能是一个多线程客户端,并且没有调用xinithreads
[xcb]正在中止,很抱歉

即使我在创建线程之前添加了一个“XInitThreads()”调用,启动几秒钟后也会显示相同的错误消息。
我已经链接了pthread库,并在编译器选项中添加了“-pthread”。

提前感谢所有建议和各种帮助。


编辑:

代码段:

XInitThreads();

sf::ContextSettings settings;
settings.depthBits = 32;
settings.stencilBits = 32;
window.create(sf::VideoMode(1120, 630), "TITLE", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);
window.clear(COLOR);
window.display();
initStartup();  //loading Resources (.png, font...)
startscreen->phaseStarted = myClock.getElapsedTime().asMilliseconds();

window.setActive(false);

sf::Thread renderThread(render);
renderThread.launch();`


编辑2:

我注释掉了我的事件处理循环
while(window.pollEvent(event)){

还有一个
sf::Mouse::getPosition(窗口)
调用


错误消失了。

您使用的GUI库是什么?看起来它在调用XInitThreads()之前调用了一些Xlib函数.-XInitThreads应该是第一个调用哪个编译器和使用哪个版本的Xlib函数?另一个解决方案可能是使用sf::Thread而不是std::Thread。我使用G++编译器。我第一次尝试使用sf::Thread,但它也不起作用。我没有直接使用任何Xlib调用。但我不知道SFML是否调用Xlib函数。也许at link可以帮助您: