C++ Can g++;/minGW是否可以很好地使用Windows SDK?Visual Studio是唯一的选项吗?
Windows XP上的g++和minGW可以使用Windows SDK吗 具体来说,为什么g++无法编译:C++ Can g++;/minGW是否可以很好地使用Windows SDK?Visual Studio是唯一的选项吗?,c++,windows,visual-studio,g++,mingw,C++,Windows,Visual Studio,G++,Mingw,Windows XP上的g++和minGW可以使用Windows SDK吗 具体来说,为什么g++无法编译: #include <stdio.h> #include <windows.h> int main(void) { printf("!!!Hello World!!!"); return EXIT_SUCCESS; } 我从一开始就有一大堆编译错误 winnt.h:666:2: #error Must define a target architecture
#include <stdio.h>
#include <windows.h>
int main(void) {
printf("!!!Hello World!!!");
return EXIT_SUCCESS;
}
我从一开始就有一大堆编译错误
winnt.h:666:2: #error Must define a target architecture.
我已经安装了
背景
我正在从事一个大型实时图像处理软件项目,到目前为止,该项目使用了g++、minGW和gnu make文件(手工编写)。对于一个新特性,我需要与具有的接口。framegrabber SDK依赖于Windows SDK中的头文件
我需要学习Visual Studio还是有其他方法?我每天使用MinGW编译Windows程序,没有任何问题。您的安装一定有问题-请尝试上的版本 编辑:只需重新阅读您的帖子-您不需要像现在这样指定include目录,而且可能不应该这样做。此外,您可能需要(也可能不需要)略显神秘的-mwindows标志。我刚刚使用MinGW(TDM build)g++4.4.1编译了您的程序,命令行为:
g++ main.cpp
绝对没有问题
更多信息:为了让您知道-mwindows标志的作用,GCC文档说:
此选项适用于Cygwin和
MinGW目标。它指定一个GUI
应用程序将由以下程序生成:
指示链接器设置
PE标头子系统类型应适当
就我个人而言,我从未觉得有必要这样做,但我的Windows应用程序都是命令行工具或服务器。在包含这些Windows标题之前,请尝试添加这些定义
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
编辑:我的gcc编译你的脚本没有问题(也没有这些定义)。
我正在使用mingw的GCC4.40(alpha?!)根据mingw用户邮件列表中的讨论,您可能会遇到Windows SDK的兼容性问题,您可能需要自己解决这些问题
乔治彼得罗夫[2010年12月27日;上午8:33]: 你好, 我正在尝试开发一个EVR(特定于Vista/7的视频演示API) MSYS/MinGW上MPlayer的渲染器。问题是我有Windows SDK v7.1,我需要它的evr.h。如果我想把它复制到MinGW的 包括目录及其包含的12个头文件 编译几乎是不可能的就在这一刻,我犯了很多错误 包括evr.h,没有别的。我调查发现我不能 直接将Windows SDK头文件与MinGW一起使用,因为它是附带的 有自己的头文件,有时非常非常不同。 问题在于Media Foundation/Enhanced Video Renderer标头 文件不是MinGW头文件的一部分 我该怎么办
- Windows SDK头文件问题:
罗斯岭[2010年10月10日;晚上10:16]: 在大多数情况下,Windows SDK标头与不兼容 海湾合作委员会。如果您需要的某个特定头文件不存在 在win32api堆中,如果缺少所需的内容,则可以 尝试只使用Windows SDK中的一个标题,然后使用 其余部分使用win32api 也可以只使用Windows SDK头,避免使用 win32api标题完全相同,但您需要修复一些 密钥头文件中存在问题。我过去只是修改标题,但是 Windows SDK实际上变得更加兼容,现在我 使用包装器解决问题。
Ross Ridge
有些头文件和库非常有用
基本上与GCC不兼容,比如GDI+。如果你想用
GDI+,您需要使用Microsoft编译器。
Ross Ridge
- 根据Windows SDK编译: