C++ sys/_types.h中的cygwin编译错误

C++ sys/_types.h中的cygwin编译错误,c++,cygwin,C++,Cygwin,我试图使用cywin在win32机器上构建一些linux代码 我在ym编译器中遇到以下VS.net 2003错误: “c:\cygwin\usr\include\sys_types.h(15):错误C2144:语法错误:“u int64”前面应加“;” " 及 c:\cygwin\usr\include\sys\u types.h(15):错误C2501:“扩展名””:缺少存储类或类型说明符 代码行是 __extension__ typedef long long _off64_t; 显然,我

我试图使用cywin在win32机器上构建一些linux代码

我在ym编译器中遇到以下VS.net 2003错误:

“c:\cygwin\usr\include\sys_types.h(15):错误C2144:语法错误:“u int64”前面应加“;” "

c:\cygwin\usr\include\sys\u types.h(15):错误C2501:“扩展名””:缺少存储类或类型说明符

代码行是

__extension__ typedef long long _off64_t;
显然,我在这里遗漏了一些东西,但我以前从未使用过cygwin,这让我很痛苦

出于以下几个原因,我希望至少能够在win32机器上编译我的CPP文件

(这只是数百个错误中的前两个)

谢谢, 提姆

编辑:

我选择了简单的解决方法作为答案-尽管我知道这并不像使用gcc编译那样完整或理想。。。 这是一个快速而肮脏的编译,因此在尝试与linux机器集成之前,我可以使用我熟悉的工具。(哦,跨平台开发的乐趣)


到目前为止,我对这些答案都投了赞成票,并感谢他们的帮助)

我认为,扩展宏可能没有定义。您可能需要在cygwin头目录上进行文本搜索,以查看是否存在这种情况。如果是这样,请确保标题搜索路径定义正确,等等。

我可能是错的,但cygwin标题可以专门用于使用cygwin gcc而不是visual studio进行编译。尝试在cygwin中使用gcc/g++进行编译

编辑:我可能会使用Visual Studio,这个页面(对于另一个项目)似乎暗示您可以使用vc++/cygwin编译一些东西

你可能想看看

编辑2:另见:


EDIT3:我想最好的方法是确保VisualStudio首先搜索标准的windows路径。因此,如果有一个系统
,它可能比cygwin版本更受欢迎。

关键字
\uuuuuuuuuuuuuuuuuuuu
是一个gcc扩展,用于表示使用gcc扩展的代码(在本例中为
long long
),因此它不会在迂腐模式下爆炸。如果可以,尝试用GCC。< /P> < P>在C++中编译,任何一个前面(或包含)双下划线的名称是一个特定实现的名称,在这个例子中是GNU C++。C++将使用其他名称。底线——如果源代码使用这些名称,则不能用C++来编译G+源,反之亦然。p> 这可以通过#将关键字定义为“”来解决吗?我会很好地尝试ggc ass,但我也#定义了扩展,它的表现似乎要好得多。如果这样做有效,就可以了。无论如何,这个关键词没有任何真正的意义。然而,我有点担心MSVC没有的gcc扩展—例如扩展asm、复合文字?、可变长度数组等。如果源代码包含这些扩展,那么除了gccAlso,您就没有其他选择了。请注意,在这种情况下,将宏清空可以在下面的:jpalcek中工作。显然,你必须小心你用什么来做这件事。