通过mingw编译win32项目时缺少sal.h

时间:2012-03-01 06:07:48

标签: c windows eclipse mingw winapi

错误讯息:

  

致命错误:sal.h:没有这样的文件或目录cstudy第11行,外部   location:C:\ Program Files \ Microsoft   SDKs \ Windows \ v7.0A \ Include \ specstrings.h C / C ++问题。

但是当我将VC / include添加到这个项目时,我收到了大量的错误消息。似乎VC / include / sal.h不是GCC的标准头文件。

源代码非常简单:

#include "windows.h"
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{

    return 0;
}

环境:

  • Windows 7.0A SDK
  • VC 2010
  • MINGW
  • CDT / ECLIPSE。

感谢。

2 个答案:

答案 0 :(得分:1)

不,sal.h标题是不是 GCC / MinGW的一部分,但是您可以将VC/include/作为包含目录添加到eclipse中。

替代方案:所有(!)所需的标头移至您的mingw或项目include目录。 MinGw中的一个是:<mingw path>/include)。

  

反正。 sal.h,如果您安装Windows SDK,那么它不会   在SDK目录中,但如果选择,则应该找到   安装它将随之安装的编译器和工具。   这是因为CRT标题中需要sal.h以及   Windows标头。所以你需要安装VS编译器和工具   以及SDK。然后,您将发现编译器将是   默认安装在%ProgramFiles%\ Microsoft Visual Studio下   2010 \ VC和sal.h将包含在该路径下。在64位   系统默认情况下它将在%ProgramFiles(x86)%之下。

来源:http://social.msdn.microsoft.com/Forums/eu/windowssdk/thread/0e166050-99f1-436b-bd94-b39e2910f43d

查看:

答案 1 :(得分:0)

我刚遇到这个问题。我似乎无法通过MS Windows版本的mingw获取sal.h头文件,但我的Fedora Core 18机器上的“yum whatprovides \ * / sal.h”提出了mingw-headers包。我下载了源包(即yumdownloader --source mingw-headers),在file-roller中打开了.tar.gz文件,抓住了sal.h文件,并将它放在我的MS Windows上的/ c / MinGW / include中机。

同一个包有dsound.h,这是下一个丢失的头文件。

我从未试图在Fedora Core下使用mingw来交叉编译MS Windows应用程序,但也许是时候......: - )