Не удалось найти точку входа в процедуру

Я пытаюсь скомпилировать программу на C++ с помощью MinGW в Windows 10, но постоянно получаю следующую ошибку (активированы -Wall и -Werror):

Точка входа в процедуру

_ZNSt7__cxx1112basic_stringlcSt11char_traitslcESalcEEC1EPKcRKS3_

не удалось загрузить в динамическую библиотеку

[путь к исполняемому файлу].exe

Другие решения, которые я нашел для чего-то подобного, ссылались на внешнюю DLL, а не на сам исполняемый файл.

Я парень C#, и все это мне чуждо, так что извините меня, если это действительно простая ошибка связывания или что-то в этом роде.

Все находится в одном файле (поскольку он будет оцениваться онлайн-автоматизированным судьей):

#include <iostream>
#include <string>

enum Months { January, February, March, April, May, June, July, August, September, October, November, December };

std::string monthNames[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
int monthLengths[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int main(int argc, char const *argv[]);
bool isLeapYear(int year);
int daysInMonth(Months month, int year);

int main(int argc, char const *argv[])
{
    std::cout << "Leap years:" << std::endl;
    for (size_t i = 0; i < sizeof(monthNames)/sizeof(*monthNames); ++i)
    {
        std::cout << monthNames[i] << ": " << daysInMonth(static_cast<Months>(i), 2000) << std::endl;
    }

    std::cout << "Non-leap years:" << std::endl;
    for (size_t i = 0; i < sizeof(monthNames)/sizeof(*monthNames); ++i)
    {
        std::cout << monthNames[i] << ": " << daysInMonth(static_cast<Months>(i), 1999) << std::endl;
    }

    std::cin.ignore();

    return 0;
}

bool isLeapYear(int year)
{
    return ((year & 3) == 0 && ((year % 25) != 0 || (year & 15) == 0));
}

int daysInMonth(Months month, int year)
{
    if (isLeapYear(year) && month == February)
    {
        return 29;
    }

    return monthLengths[month];
}

person BalinKingOfMoria Reinstate CMs    schedule 03.08.2015    source источник
comment
@Cheersandhth. — Альф Дьюли отметил, но это все еще происходит.   -  person BalinKingOfMoria Reinstate CMs    schedule 03.08.2015
comment
Ой. Я проголосовал за закрытие. Но я не знаю, как удалить этот голос. Хорошо, попробую воспроизвести. Какой дистрибутив MinGW вы используете, какую версию и какова ваша команда сборки?   -  person Cheers and hth. - Alf    schedule 03.08.2015
comment
Не могли бы вы показать команду, которую вы используете, со всеми флагами? Также какую версию GCC вы используете (получите ее с помощью gcc --version)?   -  person Some programmer dude    schedule 03.08.2015
comment
@JoachimPileborg Обратитесь к моему ответу ниже.   -  person BalinKingOfMoria Reinstate CMs    schedule 03.08.2015
comment
Связано: stackoverflow.com/questions/18668003   -  person M.M    schedule 14.11.2017


Ответы (2)


Вам нужно включить заголовок строки, чтобы использовать строку.

person blasko    schedule 03.08.2015
comment
Отредактировано. Тем не менее, все еще с той же проблемой. - person BalinKingOfMoria Reinstate CMs; 03.08.2015

На самом деле это была просто проблема с моей установкой MinGW (я использовал версию g++ где-то еще, и она работала как шарм).

person BalinKingOfMoria Reinstate CMs    schedule 03.08.2015