无法找到程序入口点

The procedure entry point could not be located

本文关键字:入口 程序      更新时间:2023-10-16

我试图在Windows 10上用MinGW编译一个c++程序,但我一直收到以下错误(-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];
}

您需要包含字符串头才能使用字符串。

#include <string>

这实际上只是我的MinGW安装的一个问题(我在其他地方使用了一个g++版本,它工作得很好)