引发__gnu_cxx :: __ concurrence_lock_error

时间:2019-02-07 00:26:16

标签: c++ codeblocks sfml

我目前正在尝试从类Render中的文件中加载纹理,并出现此错误。

  

在引发'__gnu_cxx :: __ concurrence_lock_error'实例后调用终止

     

what():__gnu_cxx :: __ concurrence_lock_error

     

此应用程序已请求运行时以异常方式终止它。请联系应用程序的支持团队以获取更多信息。

我在SFML中使用Code :: Blocks,并确保我的项目文件夹不是只读的

main.cpp

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>
#include "dim.h"
#include "render.h"

using namespace std;

sf::RenderWindow window;

int main()
{
    cout << "main" << endl;
    srand(time(NULL));
    Dim world1(64, 64);
    for(int y = world1.y - 1 ; y > 0; y = y - 1)
    {
        for(int x = 0; x < world1.x; x++)
        {
            cout << world1.grid.at(y).at(x);
        }
        cout << "\n";
    }
    cout << "done"<< endl;

    Render render;
    render.loadTextures();
    for(int i = 0; i < render.fileList.size(); i++)
    {
        cout << render.fileList[i] << ", ";
    }
    return 0;
}

render.h

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>

using namespace std;

#ifndef RENDER_H_INCLUDED
#define RENDER_H_INCLUDED
class Render
{
public:
    vector<string> fileList; //List of file names
    vector<sf::Texture> textures; //List of textures
    void loadTextures(); //Function to load file names from .txt
    void createWindow(int, int, sf::RenderWindow); //Function to create window
    void setWorld(); //Function to assign sprites' initial positions and textures
};




#endif // RENDER_H_INCLUDED

render.cpp

#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <vector>
#include <time.h>
#include <fstream>
#include <math.h>
#include <windows.h>
#include "render.h"

using namespace std;

void Render::loadTextures()
{
    cout << "loading textures" << endl;
    string line;
    ifstream myfile ("texturelist.txt");
    if (myfile.is_open())
    {
        cout << "texture list file opened" << endl;
        while ( getline (myfile,line) )
        {
            cout << "reading line" << endl;
            Render::fileList.push_back(line);
            cout << "saved line" << endl;
        }
    }
    myfile.close();
    cout << "texture names loaded." << endl;
    Render::textures.resize(Render::fileList.size());
    for(int i = 0; i < Render::fileList.size(); i++)
    {
        if(!Render::textures[i].loadFromFile(Render::fileList[i]))
        {
            cout << "error" << endl;
        }
    }
    cout << "textures created" << endl;
}

void createWindow(int width, int height, sf::RenderWindow window)
{
    window.create(sf::VideoMode(width, height), "Game");
    cout << "Window created" << endl;
}

完整输出:

  

主要   创造世界

     

生成层

     

拆分:16

     

生成

     

生成层

     

拆分:16

     

生成

     

生成层

     

拆分:8

     

生成

     

创造的世界

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

0000000000000000000000000000000000000000000000000000000000000000000000000000

     

00000000000000000000000010010000000000000000000010001000000000000000

     

10000000000000000000111111111000000000000000000011111110000000000000

     

1111100000000000111111111111110000000000111111111111110000000000

     

1111111111111111111111111111111111111111111111111111111111111111

     

1111111111111111111111111111111111111111111111111111111111111111

     

1111111111111111111111111111111111111111111111111111111111111111

     

2111111111111111111111112111111111111111111111111111111111111112

     

2211111111111111111122222211111111111111111111112111111111111122

     

2221111111112111111122222221111121111111111122222222211111111222

     

2222111111122211111222222222222221111111111222222222222111111112222

     

2222211111222221112222222222222222111111112222222222222222222222

     

2222222112222222122222222222222222111111222222222222222222222222

     

2222222222222222222222222222222221122222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222222222222222222222222222222222222222222222222222222222

     

2222222232222222222222222222222222222222222222222322222222222

     

2222222233222222322222222222222222222222222222222222333222223333

     

2222222333322233332222222222222222222222222222223223333333333333

     

2222222333333333333222222222222222222222232222223223333333333333

     

2222223333333333333322223333332222222222222232222233333333333333

     

22222233333333333333333333333332222222222222333222233333333333333

     

3222233333333333333333333333333333333222223333322333333333333333

     

333333333333333333333333333333333333333222233333332333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

3333333333333333333333333333333333333333333333333333333333333333

     

完成

     

加载纹理

     

纹理列表文件已打开

     

阅读线

     

保存的行

     

阅读线

     

保存的行

     

阅读线

     

保存的行

     

已加载纹理名称。

     抛出

实例后调用

terminate      

'__ gnu_cxx :: __ concurrence_lock_error'

     

what():__gnu_cxx :: __ concurrence_lock_error

     

此应用程序已请求运行时以一种异常方式终止它。

     

请与应用程序的支持团队联系以获取更多信息。

     

进程返回3(0x3)执行时间:3.276 s

     

按任意键继续。

0 个答案:

没有答案