问题描述
我在 Visual Studio 2019 中开始了一个新的 C++ 解决方案,其中包含两个项目(以下简称:project1 和 project2)。
Project1 被设置为 DLL 项目并且没有 main() 或 _main() 函数。 Project2 设置为启动项目,包含 main() 函数。
Project1 在构建时收到以下错误:
代码:LNK2019
描述:未解析的外部符号 _main 在函数“int __cdecl invoke_main(void)”(?invoke_main@@YAHXZ)
中引用
项目:项目1
文件:MSVCRTD.lib(exe_main.obj)
我查看了网站上的其他一些类似问题,以下信息似乎相关:
- 我使用“空项目”设置来创建两个项目
- 以下配置适用于平台“x64”的“所有配置”
我还注意到它下面有一个相关的 LNK1120 错误(详细信息如下),尽管我的配置类型设置为 DLL,但违规文件被列为“project1.exe”...还有其他地方吗我需要将项目设置为 DLL 或删除 .exe 引用?
代码:LNK1120
描述:1 个未解析的外部
项目:项目1
文件:Project1.exe
解决方法
哎呀: 我忘了从项目属性中删除 x86 平台。对于将来遇到此问题的任何人:
如果您只想为 x64 构建,请从属性对话框中选择“配置管理器”。然后展开“活动解决方案平台:”下拉菜单并选择“编辑”。选择您要删除的配置(在我的情况下为 x86)并选择“删除”。然后确保在所有其余平台上正确设置了“配置类型”和“子系统”。 (如果您选择“平台:所有平台”并检查这些值,它们不应显示“不同的选项”。(这解决了我的问题。)
如果您希望为所有平台构建,请确保在项目属性对话框中的“所有平台”和“所有配置”上设置了“配置类型”和“子系统”选项。
确保对您希望这些更改影响的解决方案中的所有项目执行相同的操作。