Сообщение об ошибке в кодовых блоках: неопределенная ссылка на «WinMain@16»

Я хочу запустить следующий код в Codeblocks 20.03, но получаю сообщение об ошибке: Undefined reference to 'WinMain@16'.

Код:


std::string countSheep(int number) 
{
  std::string res;
  std::string s = " sheep...";

  for (int i = 1; i <= number; i++) {
    res += std::to_string(i) + s;
  }

  return res;
}

Первоначальная проблема заключалась в том, что я получил сообщение об ошибке: to_string’ не является членом ‘std. После этого я обновил свой компилятор GCC до версии 9.2.0. Но теперь я продолжаю получать это сообщение об ошибке winmain.

У вас есть идеи, что делать?


person Syzygy    schedule 16.04.2020    source источник
comment
У вас есть main() в вашей программе? Пожалуйста, прочтите минимально воспроизводимый пример.   -  person HolyBlackCat    schedule 16.04.2020
comment
взгляните на это, возможно: /вопросы/21500724/   -  person Alex Susanu    schedule 16.04.2020
comment
Ты прав! Отсутствующая часть main() вызвала проблему. Я только что понял, что исходные коды на веб-странице Codewars не являются полной программой. Но спасибо, мне помогло!   -  person Syzygy    schedule 17.04.2020


Ответы (1)


Взгляните на это: неопределенная ссылка C++ на WinMain@16 (Code::Blocks)< /а>

и это: Неопределенная ссылка на WinMain@16 - Codeblocks

также относительно вашего кода, возможно, некоторые из более опытных С++ могут сказать мне, что я ошибаюсь. Но ваша функция countSheep ничего не возвращает, я полагаю, вы пытаетесь напечатать разрешение? поэтому вы не возвращаете строку, которую вы можете использовать позже в var, вы только распечатываете.

если это так, и, как я упоминал ранее, другие, более опытные, могут сказать мне, что я ошибаюсь, попробуйте следующее: `

#include <iostream>
#include <string>

void countSheep(int number);

int main()
{
   countSheep(3);
}
void countSheep(int number) 
{
        std::string res;
        std::string s = " sheep...";

          for (int i = 1; i <= number; i++) 
          {
                res += std::to_string(i) + s;
                std::cout << res << std::endl;
            }
}
person Alex Susanu    schedule 16.04.2020
comment
Спасибо! Проблема заключалась в отсутствующей функции main(). - person Syzygy; 17.04.2020