Catch прекрасно компилируется с MinGW32, но я получаю Segmentation Fault

Я решил попробовать написать тесты с Ловить. Я использую MinGW32 в Windows. Я использовал пример файла определения Вот (который я воспроизведу ниже для удобства):

#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? Кто-нибудь тоже сталкивался с этой проблемой?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …