【问题标题】:How to solve the "unresolved external symbol" link error in visual c++?如何解决visual c++中的“未解析的外部符号”链接错误?
【发布时间】:2011-12-07 11:59:15
【问题描述】:

我有 Visual Studio C++ 2008 速成版。

我正在尝试编译程序,但出现以下链接错误:

1>MSVCRT.lib(wcrtexew.obj) : error LNK2001: unresolved external symbol _wWinMain@16

我想做什么:

我在谷歌上找到了这个:

For Visual C++ .NET: In the Advanced category of the Linker folder in the Project Properties dialog box, set the Entry Point to wWinMainCRTStartup.

它本来打算工作,但没有。我如何编译这个应用程序?

代码非常简单:

#include "stdafx.h"
int main( int argc, char ** argv )
{
}

【问题讨论】:

    标签: c++ visual-studio visual-studio-2008 visual-c++ visual-studio-express


    【解决方案1】:

    有多种方法可以解决这个问题:

    1. 创建控制台应用程序
    2. 现在在链接器设置中更改子系统控制台(项目设置 -> 链接器 -> 系统 -> 子系统(选择控制台))
    3. 将链接器设置中的入口点更改为 mainCRTStartup(项目设置 -> 链接器 -> 高级 -> 入口点)
    4. 定义int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow ); 而不是int main(int argc, char const ** argv)

    5. 将字符集更改为使用 Unicode 字符集(项目设置 -> 常规->字符集)

    【讨论】:

    • 谢谢。我尝试了您的第三个选项并且它有效。关于第二个,我在Linker中没有找到“子系统”选项,高级选项,在哪里?
    • 对不起,它在项目设置 -> 链接器 -> 系统不在项目设置 -> 链接器 -> 高级中。我已经在帖子中更正了:)
    • 非常感谢,这真的很有帮助。
    • 这是一场噩梦
    【解决方案2】:

    看起来当您创建项目时选择了 GUI(Win32、MFC 等)程序。 这些程序有一个 WinMain() 而不是 main()。

    你想要的是一个控制台项目。

    【讨论】:

      【解决方案3】:

      根据similar questions,当main 未定义时会发生该错误。

      也许由于某种原因它正在编译不同的文件?

      This answer 表明您的标志可能不一致。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-20
        相关资源
        最近更新 更多