我想编译一个C程序,我使用cl.exe在Windows下的命令行下载了网络。该文件包含gnu C库文件,如getopt.h和unistd.h,这些文件在Windows下默认不可用。我如何获得这些访问权限(同时仍然使用cl.exe编译器)。在Windows下访问Gnu C库
谢谢。
我想编译一个C程序,我使用cl.exe在Windows下的命令行下载了网络。该文件包含gnu C库文件,如getopt.h和unistd.h,这些文件在Windows下默认不可用。我如何获得这些访问权限(同时仍然使用cl.exe编译器)。在Windows下访问Gnu C库
谢谢。
文件getopt.h和unistd.h是头文件。最好使用像MINGW32这样的gnu兼容编译器。由于替换这些文件通常不足以让你的库在Windows编译器下编译和运行。如果你仍然想使用cl.exe,那么用“windows.h”替换“unistd.h”,并从互联网上获得兼容win32的“getopt”。
getopt.h和unistd.h不是库 - 它们是头文件。即使你有他们,他们也会对你无用,因为你还需要实际的二进制库(.LIB或.a文件)。顾名思义,unistd.h文件包含特定于Unix的函数的声明。
对于getopt.h,您可以使用xgetopt。如果你有兴趣改变编译器,总是有MingW。否则,您可能必须编写自己的getopt.h或unistd.h。
unistd.h是standard C include file。如果你使用的任何编译器不提供它,我会感到震惊。你确定它不在吗?
getopt.c
from MinGW将会相当平凡地移植到MS C(我已经使用VS2005完成了这项工作)。你可以从MinGW网站下载。 This Stackoverflow posting讨论用MS C编译器代替unistd.h
。
此源代码在Windows环境下无法使用吗? – 2009-06-17 16:11:49
也许你应该提供链接到程序 – jitter 2009-06-17 16:14:05
@Jacob它可能不是。通常有很多解决办法可以应用于从Unix到Windows,但是这些都涉及到编写一些额外的代码。 – 2009-06-17 16:18:08