gpt4 book ai didi

c++ - 如何告诉 link.exe 使用 wmain 作为入口点。 LNK2019 : unresolved external symbol main referenced in function __tmainCRTStartup

转载 作者:可可西里 更新时间:2023-11-01 14:37:45 31 4
gpt4 key购买 nike

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

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

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

wmain 是否被我没有正确包含的另一组宏转换为 main(由于缺少 -D 选项等),或者 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() 的实现留给你。

关于c++ - 如何告诉 link.exe 使用 wmain 作为入口点。 LNK2019 : unresolved external symbol main referenced in function __tmainCRTStartup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764665/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com