【发布时间】:2014-04-17 20:49:29
【问题描述】:
我在 windows server 2008 r2 上完成了 cygwin 的完整安装,并下载了 Squid3.4.4 源代码。我运行了 ./configure [options] 命令,然后下一步是制作和安装 squid。
当我运行 make 时,我得到了大量的错误。这是我所看到的示例:
$ make make all in compat make[1]: 进入目录 '/home/Administrator/squid-3.4.4/compat' /bin/sh ../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I.. -I../include -I../lib -I../src -I../include -I/usr/include -I/usr/include -I /usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -Wall -Wpointer-arith -Wwrite-strings -Wcmets -Wshadow -Werror -pipe -D_REENTRANT -g -O2 -march=native -std=c++0x -MT assert.lo -MD -MP -MF .deps/assert.Tpo -c -o assert.lo assert.cc libtool:编译: g++ -DHAVE_CONFIG_H -I.. -I../include -I../lib -I../src -I../include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I /usr/include -I/usr/include -Wall -Wpointer-arith -Wwrite-strings -Wcmets -Wshadow -Werror -pipe -D_REENTRANT -g -O2 -march=native -std=c++0x -MT assert.lo -MD -MP -MF .deps/assert.Tpo -c assert.cc -DDLL_EXPORT -DPIC -o .libs/assert.o 在 ../compat/compat.h:64:0 包含的文件中, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:152:0: 错误:“O_RDONLY”重新定义 [-Werror] #define O_RDONLY
_O_RDONLY ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:34:0: 注意:这是 前面的定义 #define O_RDONLY 0 /* +1 == FREAD */ ^ In ../compat/compat.h:64:0 中包含的文件, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:153:0: 错误:“O_WRONLY”重新定义 [-Werror] #define O_WRONLY
_O_WRONLY ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:35:0: 注意:这是 前面的定义 #define O_WRONLY 1 /* +1 == FWRITE */ ^ In ../compat/compat.h:64:0 中包含的文件, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:154:0: 错误:“O_RDWR”重新定义 [-Werror] #define O_RDWR _O_RDWR ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:36:0: 注意:这是 前面的定义 #define O_RDWR 2 /* +1 == FREAD|FWRITE */ ^ 在 ../compat/compat.h:64:0 中包含的文件中, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:155:0: 错误:“O_APPEND”重新定义 [-Werror] #define O_APPEND
_O_APPEND ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:37:0: 注意:这是 先前的定义 #define O_APPEND _FAPPEND ^ 包含在文件中 来自../compat/compat.h:64:0, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:157:0: 错误:“O_CREAT”重新定义 [-Werror] #define O_CREAT _O_CREAT ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:38:0: 注意:这是 先前的定义 #define O_CREAT _FCREAT ^ 包含在文件中 来自../compat/compat.h:64:0, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:158:0: 错误:“O_TRUNC”重新定义 [-Werror] #define O_TRUNC _O_TRUNC ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:39:0: 注意:这是 先前的定义 #define O_TRUNC _FTRUNC ^ 包含在文件中 来自../compat/compat.h:64:0, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:159:0: 错误:“O_EXCL”重新定义 [-Werror] #define O_EXCL _O_EXCL ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:40:0: 注意:这是 先前的定义 #define O_EXCL _FEXCL ^ 包含在文件中 来自../compat/compat.h:64:0, 来自../include/squid.h:66, 来自 assert.cc:32: ../compat/os/mswindows.h:161:0: 错误:“O_TEXT”重新定义 [-Werror] #define O_TEXT _O_TEXT ^ 在 /usr/include/sys/fcntl.h:3:0 包含的文件中, 来自 /usr/include/fcntl.h:14, 来自../compat/os/mswindows.h:48, 来自../compat/compat.h:64, 来自../include/squid.h:66, 来自 assert.cc:32: /usr/include/sys/_default_fcntl.h:53:0: 注意:这是 之前的定义#define O_TEXT _FTEXT
我不熟悉 C++。有什么想法可能导致这种情况吗?
【问题讨论】: