未能编译项目,缺少io.h文件 P>我没有编译一个移动设备的C++项目,它带有Windows Mobile(Windows CE)操作系统和Visual C++编译器,VisualStudio失败了: Error 1 fatal error C1083: Cannot open include file: 'io.h'

未能编译项目,缺少io.h文件 P>我没有编译一个移动设备的C++项目,它带有Windows Mobile(Windows CE)操作系统和Visual C++编译器,VisualStudio失败了: Error 1 fatal error C1083: Cannot open include file: 'io.h',c++,compiler-construction,compact-framework,include,C++,Compiler Construction,Compact Framework,Include,编辑 我正在尝试编译SQLite合并,shell.c文件包含对该io.h的调用,但文件中缺少io.h 我在谷歌上搜索了一下,找不到该如何获取这个.h文件 有人能给我指出正确的方向吗?发现了一些看起来像你的问题。显然,虽然io.h是微软的标准头文件,但它没有移动平台的端口 您可能正在使用一些不是为移动设备设计的库,该库必须尝试使用非移动API。看起来io.h是标准VS的一部分,但可能不是WINCE版本的一部分(如果有)。从你的dir/s看,你好像没有 我查看了shell.c,它不包括wince的i

编辑
我正在尝试编译SQLite合并,shell.c文件包含对该io.h的调用,但文件中缺少io.h

我在谷歌上搜索了一下,找不到该如何获取这个.h文件


有人能给我指出正确的方向吗?

发现了一些看起来像你的问题。显然,虽然io.h是微软的标准头文件,但它没有移动平台的端口


您可能正在使用一些不是为移动设备设计的库,该库必须尝试使用非移动API。

看起来io.h是标准VS的一部分,但可能不是WINCE版本的一部分(如果有)。从你的dir/s看,你好像没有

我查看了shell.c,它不包括wince的io.h:

#if defined(_WIN32) || defined(WIN32)
# include <io.h>
#define isatty(h) _isatty(h)
#define access(f,m) _access((f),(m))
#else
/* Make sure isatty() has a prototype.
*/
extern int isatty();
#endif

#if defined(_WIN32_WCE)
/* Windows CE (arm-wince-mingw32ce-gcc) does not provide isatty()
 * thus we always assume that we have a console. That can be
 * overridden with the -batch command line option.
 */
#define isatty(x) 1
#endif
#如果已定义(_WIN32)| |已定义(WIN32)
#包括
#定义isatty(h)_isatty(h)
#定义访问(f,m)_访问(f,(m))
#否则
/*确保isatty()有一个原型。
*/
extern int isatty();
#恩迪夫
#如果已定义(_WIN32_WCE)
/*Windows CE(arm-wince-mingw32ce-gcc)不提供isatty()
*因此,我们总是假设我们有一个控制台。那可能是
*使用-batch命令行选项重写。
*/
#定义isatty(x)1
#恩迪夫

您可能使用错误的宏进行编译。

您是否考虑过从中查看项目文件,看看它们是如何为CE编译的?我从来没有见过为桌面设计的本机代码文件,从来没有在不做一些预处理工作的情况下为Windows CE“编译”过,它们很可能已经得到了您在这些项目中需要的答案。

对于Windows Mobile等基于Windows CE的系统,SDK中的
io.h
文件是不可用的。 事实上, IO.H./Cuth>头从来都不是ISOC和C++标准的一部分。它定义了属于Windows NT但不属于Windows NT的功能

由于WindowsCE上缺少POSIX功能,我开发了一个小型实用程序库。但这是一个非常简单的版本,对于SQLite来说可能是不够的。但是,正如ctacke所提到的,您应该使用,因为SQLite的原始版本在此平台上是不可编译的


p、 请注意,您的问题没有明确说明您正在为Windows Mobile构建。如果您没有发现标签中提到的.NET Compact Framework,那么整个问题就不明确了。

如果您在尝试安装Python库时看到此错误,请按照


基本上,先删除VisualStudio2010,然后手动删除一些注册表项,然后重新安装。为我工作。

该.h文件可能是您的代码或附带库的一部分。您知道您是否正在使用任何外部库吗?在相应根目录的命令提示符下运行“dir/s io.h”会返回什么?您正在使用Windows Mobile SDK吗?@Moron C:\>驱动器C中的dir/s io.h卷是Windows 7卷序列号是08F9-6562文件不是Found@cake对我正在使用WM CF 5.0在哪里可以更改您正在谈论的宏?第一步是找出正在使用的宏。VS编译应该为您提供完整命令行的日志。一旦您弄清楚正在使用的宏是什么,这才是真正的问题所在,您应该能够通过VS项目选项添加自己的宏(或定义)。也可能是编译时指定了错误的目标,使VS选择了错误的宏。最奇怪的是,我还没有找到用于WinMobile的已编译sqlite。我想知道是否有人这样做了。我认为已经有将sqlite外壳移植到windows mobile的程序,但我无法找到它们的构建。