2016-08-26 96 views
1

GEOS庫geos-3.5.0.tar.bz2在make中失敗。已經看到類似的SE查詢MinGW/CxxTest bizarre errors,但我不確定哪個文件要更改,因爲這些命令在配置和makefile中。GEOS構建錯誤

/bin/sh ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../include -I../../../include/geos -I../../../include -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -MT IndexedPointInAreaLocator.lo -MD -MP -MF .deps/IndexedPointInAreaLocator.Tpo -c -o IndexedPointInAreaLocator.lo IndexedPointInAreaLocator.cpp 
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../include -I../../../include/geos -I../../../include -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -MT IndexedPointInAreaLocator.lo -MD -MP -MF .deps/IndexedPointInAreaLocator.Tpo -c IndexedPointInAreaLocator.cpp -o IndexedPointInAreaLocator.o 
In file included from c:\mingw\include\wchar.h:208:0, 
       from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\cwchar:44, 
       from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\bits\postypes.h:40, 
       from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\bits\char_traits.h:40, 
       from c:\mingw\lib\gcc\mingw32\4.9.3\include\c++\string:40, 
       from ../../../include/geos/geom/Coordinate.h:24, 
       from ../../../include/geos/geom/Envelope.h:25, 
       from ../../../include/geos/geom/Geometry.h:27, 
       from IndexedPointInAreaLocator.cpp:17: 
c:\mingw\include\sys/stat.h:173:14: error: '_dev_t' does not name a type 
struct _stat __struct_stat_defined(_off_t, time_t); 
      ^
c:\mingw\include\sys/stat.h:173:14: error: '_ino_t' does not name a type 
struct _stat __struct_stat_defined(_off_t, time_t); 
+0

我得到了同樣的錯誤。 – kyb

回答

0

的解決方案是我收養是G++ updated on MingW gets massive error messages改變CXXFLAGS Makefile中每SE建議解決x64系統上我的問題。

搜索:在Makefile文件 CXXFLAGS看起來像

CXXFLAGS = -g -O2 

我改成了

CXXFLAGS = -g -O2 -std=gnu++11 -c -Wall 

由於有幾十Makefile文件中的子文件夾,我改變了他們使用Python批處理腳本在一個去。

import os, fnmatch 
def findReplace(directory, find, replace, filePattern): 
    for path, dirs, files in os.walk(os.path.abspath(directory)): 
     for filename in fnmatch.filter(files, filePattern): 
      filepath = os.path.join(path, filename) 
      with open(filepath) as f: 
       s = f.read() 
      s = s.replace(find, replace) 
      with open(filepath, "w") as f: 
       f.write(s) 

findReplace(r"C:\MinGW\git_rep\geos-3.5.0", "CXXFLAGS = -g -O2", "CXXFLAGS = -g -O2 -std=gnu++11 -c -Wall", "Makefile")