繁体   English   中英

如何告诉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

我有一个通过Visual Studio构建和链接的项目,但没有通过我们的构建系统构建和链接的项目。

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

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

是由我未正确包括的另一组宏(由于缺少-D选项等)将wmain转换为main的,还是link.exe的特殊标志指定了入口点。

谢谢。

手动指定/ entry: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()的实现some_conversion_function()您。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM