/D "_WINDOWS", /D "_CONSOLE"

本文解决了在编译过程中遇到的关于入口点函数WinMain()与main()的冲突问题。通常情况下,此错误源于工程类型配置不当。文章指导读者如何通过调整编译选项来修正这一问题。

1。编译通过,链接报错的问题
从报错信息来看,你的入口点函数是WinMain(),但是链接器却在找main(),所以可能是工程的类型建错了。解决办法很简单:
打开project->settings, 选择c/c++标签,看下最后一个编辑框的编译选项有没有/D "_CONSOLE"或者/D "_WINDOWS",如果有就去掉。
这个原因是不同的工程类型的入口点函数名字不一样。console是main, 而win32 app是winmain。

在使用 QMake 配置 Qt 项目时,若尝试通过 `QMAKE_CFLAGS += /D_USING_V140_SDK71_` 和 `QMAKE_CXXFLAGS += /D_USING_V140_SDK71_` 定义宏以启用特定于 Windows SDK 7.1 的代码路径,却遇到 `no such file or directory` 错误,通常并非由于宏定义本身导致,而是编译器无法找到所需的 SDK 头文件路径[^1]。 ### 配置 Windows SDK 7.1 环境的完整步骤 为确保 MSVC 编译器能够正确识别 SDK 7.1 的头文件和库路径,需在 `.pro` 文件中显式设置 `INCLUDEPATH` 和 `LIBS`。Windows SDK 7.1 通常安装在 `C:\Program Files\Microsoft SDKs\Windows\v7.1`,因此应将以下配置添加至 `.pro` 文件中: ```qmake # 设置 Windows SDK 7.1 的头文件路径 INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include" # 设置 Windows SDK 7.1 的库文件路径 LIBS += -L"C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib" # 定义宏以启用 SDK 7.1 相关代码路径 QMAKE_CFLAGS += /D_USING_V140_SDK71_ QMAKE_CXXFLAGS += /D_USING_V140_SDK71_ ``` ### 确保 SDK 环境变量已设置 除了在 `.pro` 文件中配置路径外,还需确保构建环境已正确初始化。可以使用 `SetEnv.cmd` 或 `vcvarsall.bat` 来设置 SDK 的环境变量。例如,在命令行中执行以下命令以启用 SDK 7.1 的构建环境: ```cmd call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /x86 ``` 此命令将设置 `INCLUDE`、`LIB` 和 `PATH` 环境变量,使编译器能够找到 SDK 的头文件、库文件和工具。 ### 完整的 `.pro` 文件示例 ```qmake TARGET = MyApplication TEMPLATE = app # 指定 SDK 7.1 的头文件路径 INCLUDEPATH += "C:/Program Files/Microsoft SDKs/Windows/v7.1/Include" # 指定 SDK 7.1 的库文件路径 LIBS += -L"C:/Program Files/Microsoft SDKs/Windows/v7.1/Lib" # 定义宏以启用 SDK 7.1 相关功能 QMAKE_CFLAGS += /D_USING_V140_SDK71_ QMAKE_CXXFLAGS += /D_USING_V140_SDK71_ # 启用 C++17 标准支持 QMAKE_CXXFLAGS += /std:c++17 # 链接器配置 QMAKE_LFLAGS += /INCREMENTAL:NO # 输出目录 DESTDIR = C:/path/to/output # Windows 平台特定库 win32 { LIBS += -luser32 -lgdi32 } ``` ### 常见错误排查 若仍然出现 `no such file or directory` 错误,应检查以下内容: - SDK 安装路径是否正确,`Include` 和 `Lib` 目录是否存在。 - 是否在命令行环境中正确调用了 `SetEnv.cmd` 或 `vcvarsall.bat`。 - 是否在 Qt Creator 中使用了正确的编译器工具链(MSVC 2015 v140)。 - 是否在项目配置中启用了 Windows SDK 7.1 的支持,例如通过 Visual Studio 的属性管理器设置平台工具集。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值