2009-06-17 15 views
0

我想编译一个C程序,我使用cl.exe在Windows下的命令行下载了网络。该文件包含gnu C库文件,如getopt.h和unistd.h,这些文件在Windows下默认不可用。我如何获得这些访问权限(同时仍然使用cl.exe编译器)。在Windows下访问Gnu C库

谢谢。

回答

3

文件getopt.h和unistd.h是头文件。最好使用像MINGW32这样的gnu兼容编译器。由于替换这些文件通常不足以让你的库在Windows编译器下编译和运行。如果你仍然想使用cl.exe,那么用“windows.h”替换“unistd.h”,并从互联网上获得兼容win32的“getopt”。

3

getopt.h和unistd.h不是库 - 它们是头文件。即使你有他们,他们也会对你无用,因为你还需要实际的二进制库(.LIB或.a文件)。顾名思义,unistd.h文件包含特定于Unix的函数的声明。

+0

此源代码在Windows环境下无法使用吗? – 2009-06-17 16:11:49

+0

也许你应该提供链接到程序 – jitter 2009-06-17 16:14:05

+3

@Jacob它可能不是。通常有很多解决办法可以应用于从Unix到Windows,但是这些都涉及到编写一些额外的代码。 – 2009-06-17 16:18:08

3

对于getopt.h,您可以使用xgetopt。如果你有兴趣改变编译器,总是有MingW。否则,您可能必须编写自己的getopt.h或unistd.h。

0

unistd.h是standard C include file。如果你使用的任何编译器不提供它,我会感到震惊。你确定它不在吗?

2

总是有cygwin - 使用包含文件并链接到cygwin1.dll库,这里是它们的FAQ条目。