小编Dra*_*nir的帖子

MinGW/CxxTest奇怪的错误

我希望你能帮助我.我在我的主开发机器上使用CxxTest编写了一个小项目.这台机器上的一切都很棒,没问题.但是,我尝试在我的全新笔记本电脑上设置这个项目,但是无法让它工作!我怀疑有些东西搞砸了我的MinGW安装,而不是CxxTest,但是真的很难知道 - 错误来自CxxTest文件.这是项目的文件夹结构:

lib/
    cxxtest-4.3/
src/
    TestUtils.h
    test.cpp
test/
    MyTestSuite.h
    libstdc++-6.dll
Run Code Online (Sandbox Code Playgroud)

在命令行上我运行:

cd test
..\lib\cxxtest-4.3\bin\cxxtestgen --error-printer -o runner.cpp MyTestSuite.h
Run Code Online (Sandbox Code Playgroud)

这会生成runner.cpp.现在我跑:

g++ -o runner.exe runner.cpp -I "../lib/cxxtest-4.3" -std=c++11
Run Code Online (Sandbox Code Playgroud)

这通常工作正常,输出runner.exe并运行我的单元测试.在我的笔记本电脑上,我只收到了数千个错误 以下是前几个:

In file included from c:\mingw\include\wchar.h:208:0,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\cwchar:44,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\bits\postypes.h:40,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\iosfwd:40,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\ios:38,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\istream:38,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\sstream:38,
                 from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\complex:45,
                 from ../lib/cxxtest-4.3/cxxtest/StdHeaders.h:24,
                 from ../lib/cxxtest-4.3/cxxtest/StdValueTraits.h:22,
                 from ../lib/cxxtest-4.3/cxxtest/ValueTraits.h:400,
                 from ../lib/cxxtest-4.3/cxxtest/TestSuite.h:24,
                 from ../lib/cxxtest-4.3/cxxtest/RealDescriptions.h:20,
                 from ../lib/cxxtest-4.3/cxxtest/TestRunner.h:22,
                 from runner.cpp:11:
c:\mingw\include\sys/stat.h:173:14: error: '_dev_t' does not name a type
 struct _stat __struct_stat_defined( _off_t, time_t );
              ^
c:\mingw\include\sys/stat.h:173:14: error: '_ino_t' …
Run Code Online (Sandbox Code Playgroud)

c++ mingw cxxtest

18
推荐指数
1
解决办法
7981
查看次数

试图使用静态方法/成员

在过去的几年里,我被C#编码所困扰,现在我又回到了C++,并发现我遇到的问题很简单.我正在使用名为DarkGDK的gamedev的第三方库(任何以db为前缀的命令),但DGDK不是问题.

继承我的代码:

system.h中

#pragma once

#include <string>
#include <map>
#include "DarkGDK.h"

using namespace std;

class System
{
public:
    System();
    ~System();
    void Initialize();

    static void LoadImage(string fileName, string id);
    static int GetImage(string id);

private:
    map<string, int> m_images;
};
Run Code Online (Sandbox Code Playgroud)

System.cpp

#include "System.h"

System::System()
{
}

System::~System()
{
}

void System::Initialize()
{
    dbSetDisplayMode (1024, 640, 32);
    dbSetWindowTitle ("the Laboratory");
    dbSetWindowPosition(100, 10);

    dbSyncOn         ();
    dbSyncRate       (60);

    dbRandomize(dbTimer());
}

void System::LoadImage(string fileName, string id)
{
    int i = 1;

    while (dbImageExist(i))
    {
        i++;
    }

    dbLoadImage(const_cast<char*>(fileName.c_str()), …
Run Code Online (Sandbox Code Playgroud)

c++ static-methods static-members

2
推荐指数
1
解决办法
2973
查看次数

标签 统计

c++ ×2

cxxtest ×1

mingw ×1

static-members ×1

static-methods ×1