2014-06-05 105 views
5

我對這個問題越來越感到沮喪,但我一直在嘗試重新安裝GDAL以安裝新版本的QGIS。當我嘗試使用pip install GDAL安裝它,我得到以下幾點:GDAL錯誤:命令'cc'失敗,退出狀態1

Installing collected packages: GDAL 
    Running setup.py install for GDAL 
    building 'osgeo._gdal' extension 
    cc -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/local/lib/python2.7/site-packages/numpy/core/include -I/Library/Frameworks/GDAL.framework/Versions/1.9/include -c extensions/gdal_wrap.cpp -o build/temp.macosx-10.7-x86_64-2.7/extensions/gdal_wrap.o 
    extensions/gdal_wrap.cpp:2230:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign] 
         res = SWIG_AddCast(res); 
         ~~~^   ~~~ 
    extensions/gdal_wrap.cpp:2233:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign] 
         res = SWIG_AddCast(res); 
         ~~~^   ~~~ 
    extensions/gdal_wrap.cpp:3515:12: error: use of undeclared identifier 'GDALGetMetadataDomainList' 
     return GDALGetMetadataDomainList(self); 
      ^
    extensions/gdal_wrap.cpp:3753:5: error: unknown type name 'CPLVirtualMem' 
     CPLVirtualMem *vmem; 
     ^
    extensions/gdal_wrap.cpp:3761:5: error: unknown type name 'GDALTileOrganization' 
     GDALTileOrganization eTileOrganization; 
     ^
    extensions/gdal_wrap.cpp:3836:15: warning: unused variable 'start_addr' [-Wunused-variable] 
      char* start_addr = (char*)CPLVirtualMemGetAddr(self->vmem) + start_offset; 
       ^
    extensions/gdal_wrap.cpp:4237:9: error: unknown type name 'CPLVirtualMem' 
      CPLVirtualMem* vmem = GDALDatasetGetVirtualMem(self, 
      ^
    extensions/gdal_wrap.cpp:4237:31: error: use of undeclared identifier 'GDALDatasetGetVirtualMem' 
      CPLVirtualMem* vmem = GDALDatasetGetVirtualMem(self, 
           ^
    extensions/gdal_wrap.cpp:4263:237: error: unknown type name 'GDALTileOrganization' 
    SWIGINTERN CPLVirtualMemShadow *GDALDatasetShadow_GetTiledVirtualMem(GDALDatasetShadow *self,GDALRWFlag eRWFlag,int nXOff,int nYOff,int nXSize,int nYSize,int nTileXSize,int nTileYSize,GDALDataType eBufType,int band_list,int *pband_list,GDALTileOrganization eTileOrganization,size_t nCacheSize,char **options=NULL){ 
                                                               ^
    extensions/gdal_wrap.cpp:4266:9: error: unknown type name 'CPLVirtualMem' 
      CPLVirtualMem* vmem = GDALDatasetGetTiledVirtualMem(self, 
      ^
    extensions/gdal_wrap.cpp:4620:9: error: unknown type name 'CPLVirtualMem' 
      CPLVirtualMem* vmem = GDALRasterBandGetVirtualMem(self, 
      ^
    extensions/gdal_wrap.cpp:4620:31: error: use of undeclared identifier 'GDALRasterBandGetVirtualMem' 
      CPLVirtualMem* vmem = GDALRasterBandGetVirtualMem(self, 
           ^
    extensions/gdal_wrap.cpp:4647:9: error: unknown type name 'CPLVirtualMem' 
      CPLVirtualMem* vmem = GDALGetVirtualMemAuto(self, 
      ^
    extensions/gdal_wrap.cpp:4647:31: error: use of undeclared identifier 'GDALGetVirtualMemAuto' 
      CPLVirtualMem* vmem = GDALGetVirtualMemAuto(self, 
           ^
    extensions/gdal_wrap.cpp:4667:9: error: unknown type name 'CPLVirtualMem' 
      CPLVirtualMem* vmem = GDALRasterBandGetTiledVirtualMem(self, 
      ^
    extensions/gdal_wrap.cpp:4667:31: error: use of undeclared identifier 'GDALRasterBandGetTiledVirtualMem'; did you mean 'GDALRasterBandShadow_GetVirtualMem'? 
      CPLVirtualMem* vmem = GDALRasterBandGetTiledVirtualMem(self, 
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
            GDALRasterBandShadow_GetVirtualMem 
    extensions/gdal_wrap.cpp:4619:33: note: 'GDALRasterBandShadow_GetVirtualMem' declared here 
    SWIGINTERN CPLVirtualMemShadow *GDALRasterBandShadow_GetVirtualMem(GDALRasterBandShadow *self,GDALRWFlag eRWFlag,int nXOff,int nYOff,int nXSize,int nYSize,int nBufXSize,int nBufYSize,GDALDataType eBufType,size_t nCacheSize,size_t nPageSizeHint,char **options=NULL){ 
            ^
    extensions/gdal_wrap.cpp:4685:41: error: use of undeclared identifier 'GTO_BSQ' 
      vmemshadow->eTileOrganization = GTO_BSQ; 
              ^
    extensions/gdal_wrap.cpp:4867:16: error: use of undeclared identifier 'GDALRATChangesAreWrittenToFile' 
      return GDALRATChangesAreWrittenToFile(self); 
       ^
    extensions/gdal_wrap.cpp:7845:31: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      PyObject *item_list = PyMapping_Items(obj1); 
           ^
    /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7/abstract.h:1354:50: note: expanded from macro 'PyMapping_Items' 
    #define PyMapping_Items(O) PyObject_CallMethod(O,"items",NULL) 
                ^
    extensions/gdal_wrap.cpp:11385:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "B"; 
         ^
    extensions/gdal_wrap.cpp:11390:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "h"; 
         ^
    extensions/gdal_wrap.cpp:11395:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "H"; 
         ^
    extensions/gdal_wrap.cpp:11400:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "i"; 
         ^
    extensions/gdal_wrap.cpp:11405:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "I"; 
         ^
    extensions/gdal_wrap.cpp:11410:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "f"; 
         ^
    extensions/gdal_wrap.cpp:11415:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "F"; 
         ^
    extensions/gdal_wrap.cpp:11420:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 
      buf->format = "B"; 
         ^
    extensions/gdal_wrap.cpp:13656:3: error: unknown type name 'GDALTileOrganization' 
     GDALTileOrganization arg12 ; 
    ^
    extensions/gdal_wrap.cpp:13768:24: error: unknown type name 'GDALTileOrganization' 
     arg12 = static_cast<GDALTileOrganization>(val12); 
         ^
    extensions/gdal_wrap.cpp:23687:14: warning: explicitly assigning a variable of type 'void *' to itself [-Wself-assign] 
     clientdata = clientdata; 
     ~~~~~~~~~~^~~~~~~~~~~ 
    13 warnings and 17 errors generated. 
    error: command 'cc' failed with exit status 1 
    Complete output from command /usr/local/opt/python/bin/python2.7 -c "import setuptools;__file__='/private/var/folders/y2/thsw8bnj0xz0vp55gcykptfw0000gn/T/pip_build_root/GDAL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/y2/thsw8bnj0xz0vp55gcykptfw0000gn/T/pip-bLqvAE-record/install-record.txt --single-version-externally-managed: 
    running install 

running build 

running build_py 

creating build 

creating build/lib.macosx-10.7-x86_64-2.7 

copying gdal.py -> build/lib.macosx-10.7-x86_64-2.7 

copying ogr.py -> build/lib.macosx-10.7-x86_64-2.7 

copying osr.py -> build/lib.macosx-10.7-x86_64-2.7 

copying gdalconst.py -> build/lib.macosx-10.7-x86_64-2.7 

copying gdalnumeric.py -> build/lib.macosx-10.7-x86_64-2.7 

creating build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/__init__.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/gdal.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/gdal_array.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/gdalconst.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/gdalnumeric.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/ogr.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

copying osgeo/osr.py -> build/lib.macosx-10.7-x86_64-2.7/osgeo 

running build_ext 

building 'osgeo._gdal' extension 

creating build/temp.macosx-10.7-x86_64-2.7 

creating build/temp.macosx-10.7-x86_64-2.7/extensions 

cc -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I../../port -I../../gcore -I../../alg -I../../ogr/ -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/usr/local/lib/python2.7/site-packages/numpy/core/include -I/Library/Frameworks/GDAL.framework/Versions/1.9/include -c extensions/gdal_wrap.cpp -o build/temp.macosx-10.7-x86_64-2.7/extensions/gdal_wrap.o 

extensions/gdal_wrap.cpp:2230:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign] 

        res = SWIG_AddCast(res); 

        ~~~^   ~~~ 

extensions/gdal_wrap.cpp:2233:11: warning: explicitly assigning a variable of type 'int' to itself [-Wself-assign] 

        res = SWIG_AddCast(res); 

        ~~~^   ~~~ 

extensions/gdal_wrap.cpp:3515:12: error: use of undeclared identifier 'GDALGetMetadataDomainList' 

    return GDALGetMetadataDomainList(self); 

     ^

extensions/gdal_wrap.cpp:3753:5: error: unknown type name 'CPLVirtualMem' 

    CPLVirtualMem *vmem; 

    ^

extensions/gdal_wrap.cpp:3761:5: error: unknown type name 'GDALTileOrganization' 

    GDALTileOrganization eTileOrganization; 

    ^

extensions/gdal_wrap.cpp:3836:15: warning: unused variable 'start_addr' [-Wunused-variable] 

     char* start_addr = (char*)CPLVirtualMemGetAddr(self->vmem) + start_offset; 

      ^

extensions/gdal_wrap.cpp:4237:9: error: unknown type name 'CPLVirtualMem' 

     CPLVirtualMem* vmem = GDALDatasetGetVirtualMem(self, 

     ^

extensions/gdal_wrap.cpp:4237:31: error: use of undeclared identifier 'GDALDatasetGetVirtualMem' 

     CPLVirtualMem* vmem = GDALDatasetGetVirtualMem(self, 

          ^

extensions/gdal_wrap.cpp:4263:237: error: unknown type name 'GDALTileOrganization' 

SWIGINTERN CPLVirtualMemShadow *GDALDatasetShadow_GetTiledVirtualMem(GDALDatasetShadow *self,GDALRWFlag eRWFlag,int nXOff,int nYOff,int nXSize,int nYSize,int nTileXSize,int nTileYSize,GDALDataType eBufType,int band_list,int *pband_list,GDALTileOrganization eTileOrganization,size_t nCacheSize,char **options=NULL){ 

                                                              ^

extensions/gdal_wrap.cpp:4266:9: error: unknown type name 'CPLVirtualMem' 

     CPLVirtualMem* vmem = GDALDatasetGetTiledVirtualMem(self, 

     ^

extensions/gdal_wrap.cpp:4620:9: error: unknown type name 'CPLVirtualMem' 

     CPLVirtualMem* vmem = GDALRasterBandGetVirtualMem(self, 

     ^

extensions/gdal_wrap.cpp:4620:31: error: use of undeclared identifier 'GDALRasterBandGetVirtualMem' 

     CPLVirtualMem* vmem = GDALRasterBandGetVirtualMem(self, 

          ^

extensions/gdal_wrap.cpp:4647:9: error: unknown type name 'CPLVirtualMem' 

     CPLVirtualMem* vmem = GDALGetVirtualMemAuto(self, 

     ^

extensions/gdal_wrap.cpp:4647:31: error: use of undeclared identifier 'GDALGetVirtualMemAuto' 

     CPLVirtualMem* vmem = GDALGetVirtualMemAuto(self, 

          ^

extensions/gdal_wrap.cpp:4667:9: error: unknown type name 'CPLVirtualMem' 

     CPLVirtualMem* vmem = GDALRasterBandGetTiledVirtualMem(self, 

     ^

extensions/gdal_wrap.cpp:4667:31: error: use of undeclared identifier 'GDALRasterBandGetTiledVirtualMem'; did you mean 'GDALRasterBandShadow_GetVirtualMem'? 

     CPLVirtualMem* vmem = GDALRasterBandGetTiledVirtualMem(self, 

           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

           GDALRasterBandShadow_GetVirtualMem 

extensions/gdal_wrap.cpp:4619:33: note: 'GDALRasterBandShadow_GetVirtualMem' declared here 

SWIGINTERN CPLVirtualMemShadow *GDALRasterBandShadow_GetVirtualMem(GDALRasterBandShadow *self,GDALRWFlag eRWFlag,int nXOff,int nYOff,int nXSize,int nYSize,int nBufXSize,int nBufYSize,GDALDataType eBufType,size_t nCacheSize,size_t nPageSizeHint,char **options=NULL){ 

           ^

extensions/gdal_wrap.cpp:4685:41: error: use of undeclared identifier 'GTO_BSQ' 

     vmemshadow->eTileOrganization = GTO_BSQ; 

             ^

extensions/gdal_wrap.cpp:4867:16: error: use of undeclared identifier 'GDALRATChangesAreWrittenToFile' 

     return GDALRATChangesAreWrittenToFile(self); 

      ^

extensions/gdal_wrap.cpp:7845:31: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     PyObject *item_list = PyMapping_Items(obj1); 

          ^

/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7/abstract.h:1354:50: note: expanded from macro 'PyMapping_Items' 

#define PyMapping_Items(O) PyObject_CallMethod(O,"items",NULL) 

               ^

extensions/gdal_wrap.cpp:11385:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "B"; 

        ^

extensions/gdal_wrap.cpp:11390:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "h"; 

        ^

extensions/gdal_wrap.cpp:11395:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "H"; 

        ^

extensions/gdal_wrap.cpp:11400:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "i"; 

        ^

extensions/gdal_wrap.cpp:11405:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "I"; 

        ^

extensions/gdal_wrap.cpp:11410:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "f"; 

        ^

extensions/gdal_wrap.cpp:11415:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "F"; 

        ^

extensions/gdal_wrap.cpp:11420:21: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings] 

     buf->format = "B"; 

        ^

extensions/gdal_wrap.cpp:13656:3: error: unknown type name 'GDALTileOrganization' 

    GDALTileOrganization arg12 ; 

^

extensions/gdal_wrap.cpp:13768:24: error: unknown type name 'GDALTileOrganization' 

    arg12 = static_cast<GDALTileOrganization>(val12); 

        ^

extensions/gdal_wrap.cpp:23687:14: warning: explicitly assigning a variable of type 'void *' to itself [-Wself-assign] 

    clientdata = clientdata; 

    ~~~~~~~~~~^~~~~~~~~~~ 

13 warnings and 17 errors generated. 

error: command 'cc' failed with exit status 1 

主要點是最後一行:錯誤:command 'cc' failed with exit status。我已經嘗試了幾乎所有在Stackoverflow和其他地方找到的修復,從導出CFLAG策略到刪除文件。我仍然得到這個錯誤。

任何人都可以幫忙。

+1

你安裝了gdal嗎?您是否安裝了開發版libgdal-dev,以便編譯頭文件? – Evert

+0

我正在運行Mac OS X 10.9.3 Mavericks。我是否安裝libgdal-dev?我現在試過了,得到這個:找不到滿足要求的任何下載gdal-dev – Siya

+0

libgdal-dev不是Python包。你必須手動安裝它,或者使用像homebrew,macports或fink這樣的OSX包管理器。 – Evert

回答

11

我剛剛遇到了這個(因此找到你的問題)。我通過確保我試圖安裝的(Python的)GDAL的版本與系統上的libgdal的版本匹配來解決此問題。

在我的例子中,pip拉動了GDAL==1.11.0,而我的libgdal版本是1.10.1+dfsg-5ubuntu1。運行pip install GDAL==1.10.0(也許用實際版本代替)應該做正確的事情。

您的編譯器錯誤是GDAL 1.11.0期望僅在libgdal的最新版本中出現的符號。

相關問題