如何告诉link.exe使用wmain作为入口点.LNK2019:函数__tmainCRTStartup中引用的未解析外

How to tell link.exe to use wmain as entry point. LNK2019: unresolved external symbol main referenced in function __tmainCRTStartup

本文关键字:tmainCRTStartup 引用 函数 LNK2019 使用 exe link 何告诉 wmain 入口      更新时间:2023-10-16

我有一个项目通过visualstudio构建和链接,但不是通过我们的构建系统。

据我所知,如果定义了UNICODE,tchar.h包含一个将_tmain转换为wmain的宏。我已经检查了预处理器的输出,事实上_tmain已经被wmain替换了。然后,包含wmain的文件编译得很好,但链接器抱怨main未定义。

LNK2019:函数__tmainCRTStartup 中引用的未解析外部符号主

wmain是否被另一组我没有正确包含的宏(由于缺少-D选项等)转换为main,或者link.exe是否有指定入口点的特殊标志。

谢谢。

手动指定/输入:mainCRTStartup修复了它。

编辑:我刚刚检查了main.obj文件。wmain是明确定义的。

MSVC使用一个特殊的运行时启动,即所谓的预期入口点wmain()WinMain()等。

这些名字绝对没有什么神奇之处。如果你没有MSVC启动源代码,实现你自己的启动模块来满足你的需求:

int main (int argc, char **argv, char **envp)
{
    wchar_t **w_argv =  some_conversion_function (argc, argv);
    wchar_t **w_envp =  some_conversion_function (some_count_function (envp), envp);
    return wmain (argc, w_argv, w_envp);
}

这里我将some_conversion_function()some_count_function()的实现留给您。

相关文章:
  • 没有找到相关文章