![](/img/trans.png)
[英]LNK2019: unresolved external symbol _main referenced in function __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.