2016-03-02 79 views
0

在Windows 7 x64上使用Cygwin。提取 'ioping' 源成一个 '/ home'如何用cygwin编译ioping

这是结果:

$ make 
test ! -d .git || git describe --tags --dirty=+ | sed 's/^v//;s/-/./g' > version 
cc -std=gnu99 -g -Wall -Wextra -pedantic -DVERSION=\"0.8\" -c -o ioping.o ioping.c 
ioping.c: In function ‘get_device_size’: 
ioping.c:602:3: error: #error no get disk size method 
# error no get disk size method 
^
Makefile:46: recipe for target 'ioping.o' failed 
make: *** [ioping.o] Error 1 

尝试编译Windows可执行文件。我是Cygwin的新手。看起来像预处理器在查看代码时缺失。

来源:https://github.com/koct9i/ioping

编辑: 见接受asnwer用户, 'user3629249' 和我的完整的答案意见。

注意链接的源代码。 'Readme'表示它可以在Windows上运行,试过用Win 7 Ultimate 64-bit和SSD来运行它,并且它出现了“准备写入失败:没有错误”的错误。

+0

你真的不应该把ioping项目文件放在你的'home'目录下。相反,创建一个子目录。然后将项目文件放在该子目录中。 – user3629249

+0

当时我简单简洁,但我实际上把它放在它自己的目录中,只是没有在上面显示它,只是想指出什么似乎是最相关的基本目录。但是对于后代来说,它应该位于组织原因的子目录中。有些人可能认为是挑剔的,但不管怎么说都不错。 –

回答

0

功能:get_device_size()选择取决于底层操作系统上的某些`的ioctl()。

其中ioctl()取决于其在make时间

  1. __linux__
  2. __gnu_hurd__
  3. __FreeBSD__
  4. __FreeBSD_kernel__
  5. __DragonFly__
  6. 中定义的以下
  7. __APPLE__
  8. __sun__
  9. __MINGW32__

浏览你的环境变量

我希望一些环境变量,像__cygwin__

而且,任何环境变量似乎最有可能是适当的一,添加环境的名称可变为ioping.c文件顶部附近的预处理程序块组,以及get_device_size()函数。

+0

最简单的解决方案是安装独立的'MinGW'。从我读的内容来看,它会花一些工作来让它与Cygwin一起工作(不想冒险搞乱Cygwin环境设置,因为我将它用于其他事情)感谢您的尝试。 –

+0

'MinGW'的功能是用于Windows,而不是像unix一样的环境。唯一的变化是在oping.c文件中,而不是在cygwin环境中。但是,如果您不想更改* .c文件,那么在您的.bashrc文件中添加类似于'set __linux__'和'export __linux__'的语句 – user3629249