Я пытаюсь скомпилировать программу на 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];
}
gcc --version)? - person Some programmer dude   schedule 03.08.2015