1

我决定尝试使用Catch编写测试。我在 Windows 中使用 MinGW32。我在这里使用了示例文件定义(为方便起见,我在下面复制):

#define CATCH_CONFIG_MAIN  // This tells Catch to provide a main() - only do this in one cpp file
#include "catch.hpp"

unsigned int Factorial( unsigned int number ) {
    return number <= 1 ? number : Factorial(number-1)*number;
}

TEST_CASE( "Factorials are computed", "[factorial]" ) {
    REQUIRE( Factorial(1) == 1 );
    REQUIRE( Factorial(2) == 2 );
    REQUIRE( Factorial(3) == 6 );
    REQUIRE( Factorial(10) == 3628800 );
}

我正在运行以下行来编译程序:

g++ -I./Catch/include/ -W -Wall -o run_tests main.cpp

我绝对没有错误,但是当我运行它时,我得到一个分段错误。

之后,我尝试提供自己的main()功能。现在代码如下所示:

#define CATCH_CONFIG_RUNNER
#include "catch.hpp"

int main()
{
        return 0; // Yes, I'm not even using Catch and it still crashes
}

我仍然得到一个分段错误。

这与MinGW有些不兼容吗?有没有人也遇到过这个问题?

4

0 回答 0