GDAL-Программа: Try to find the GDAL encryption library

Ответить
glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 16:26

Всех приветствую!

Пробую на Windows 8 скомпилировать программу (Visual Studio 2008), которую я подготовил на базе прототипа программы Дмитрия Барышникова, и не получается:

Error 1 error PRJ0019: A tool returned an error code from "Building Custom Rule C:/work/gdal_mc/files/gdalmc/CMakeLists.txt" gdal_imap_c2014 gdal_imap_c2014

Т.е. Ошибка где то здесь похоже:

https://wxgis.googlecode.com/svn-histor ... GDAL.cmake

Ибо CMakeLists.txt связан похоже я этим файлом:

Код: Выделить всё

cmake_minimum_required (VERSION 2.8)

set(APP_NAME "gdalmc")

project (${APP_NAME})

set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Configs" FORCE)
set(CMAKE_COLOR_MAKEFILE ON)

include_directories(${CMAKE_CURRENT_SOURCE_DIR})

find_package(GDAL REQUIRED)
if(GDAL_FOUND)
    include_directories(${GDAL_INCLUDE_DIR})
    include_directories(${GDAL_INCLUDE_DIR}/ogr)
    include_directories(${GDAL_INCLUDE_DIR}/ogr/ogrsf_frmts)
    include_directories(${GDAL_INCLUDE_DIR}/port)
    include_directories(${GDAL_INCLUDE_DIR}/gcore)
    include_directories(${GDAL_INCLUDE_DIR}/alg)
    include_directories(${GDAL_INCLUDE_DIR}/frmts/vrt)
    include_directories(${GDAL_INCLUDE_DIR}/build/port) #assume that out of source build was in build dir
endif(GDAL_FOUND)

if(MSVC)
  set(CMAKE_DEBUG_POSTFIX "d")
  add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
  add_definitions(-D_UNICODE -DUNICODE -D_USRDLL)
endif(MSVC)

if(WIN32)
  add_definitions(-DWIN32)
endif(WIN32)

if(UNIX)
     if(CMAKE_COMPILER_IS_GNUCXX OR CV_ICC)
        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fno-strict-aliasing")
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-aliasing")
     endif()
endif()

set(PROJECT_HHEADERS ${PROJECT_HHEADERS}  
)

set(PROJECT_CSOURCES ${PROJECT_CSOURCES}
    ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
)

add_executable(${APP_NAME} ${PROJECT_HHEADERS} ${PROJECT_CSOURCES})

if(GDAL_FOUND)
    target_link_libraries(${APP_NAME} ${GDAL_LIBRARIES})
endif(GDAL_FOUND) 
Т.е. похоже "find_package(GDAL REQUIRED)" компилятору найти не получается, и найти в инете тоже пока ничего существенного не удается...

Мне эта программа по прежнему очень ценна, ибо у нее быстродействие раза в 2 быстрее, если я пробую работать с новой версией GDAL и новым алгоритмом (здесь у меня упрощенный алгоритм, но дополнительно по этому алгоритму надо tab'ы разбивать по типам объектов, переводить tab'ы в mif,и т.д.). У меня для 1 км. н.л. (перевод их в tab'ы и верификация) строятся этим старым алгоритмом 5.5 суток - н.л. порядка 11 тысяч, а строить их по новому алгоритму - 11... суток, ну как бы очень долго... ) . Старый мой компьютер мне пока не доступен.

Поэтому проблема как откомпилировать прототип программы Дмитрия Барышникова (с моими добавлениями кода), для меня весьма важна и к сожалению в связи с указанной проблемой весьма тяжела пока...

Пробую устанавливать параметры в Windows Environment, но пока не успешно.

Если кто сможет посоветовать как преодолеть проблему с установкой параметров для "find_package(GDAL REQUIRED) и т.д.", буду очень благодарен.

С уважением, Александр
Последний раз редактировалось glax2020 08 май 2016, 22:45, всего редактировалось 3 раза.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение Denis Rykov » 08 май 2016, 16:33

wxGIS теперь NextGIS Manager и живёт тут.
Spatial is now, more than ever, just another column- The Geometry Column.

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 16:40

Denis Rykov писал(а):wxGIS теперь NextGIS Manager и живёт тут.
Может я ошибся. Мой файл FindGDAL.cmake из проекта такой:

Код: Выделить всё

# - Try to find the GDAL encryption library
# Once done this will define
#
#  GDAL_ROOT_DIR - Set this variable to the root installation of GDAL
#
# Read-Only variables:
#  GDAL_FOUND - system has the GDAL library
#  GDAL_INCLUDE_DIR - the GDAL include directory
#  GDAL_LIBRARIES - The libraries needed to use GDAL
#  GDAL_VERSION - This is set to $major.$minor.$revision (eg. 0.9.8)

#=============================================================================
# Copyright 2012 Dmitry Baryshnikov <polimax at mail dot ru>
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distribute this file outside of CMake, substitute the full
#  License text for the above reference.)

if (UNIX)
  find_package(PkgConfig)
  if (PKG_CONFIG_FOUND)
    pkg_check_modules(_GDAL gdal)
  endif (PKG_CONFIG_FOUND)
endif (UNIX)

SET(_GDAL_ROOT_HINTS
  $ENV{GDAL}
  $ENV{GDAL_ROOT}
  $ENV{LIB}
  $ENV{LIB_HOME}/gdal
  ${GDAL_ROOT_DIR}
  )
SET(_GDAL_ROOT_PATHS
  $ENV{GDAL}
  $ENV{GDAL_ROOT}
  $ENV{LIB}
  $ENV{LIB_HOME}/gdal
  )
SET(_GDAL_ROOT_HINTS_AND_PATHS
  HINTS ${_GDAL_ROOT_HINTS}
  PATHS ${_GDAL_ROOT_PATHS}
  )

FIND_PATH(GDAL_INCLUDE_DIR
  NAMES
    gdal.h
    gcore/gdal.h
  HINTS
    ${_GDAL_INCLUDE_DIR}
  ${_GDAL_ROOT_HINTS_AND_PATHS}
  PATH_SUFFIXES
    "include"
    "include/gdal"
    "local/include/gdal"
)

IF(WIN32 AND NOT CYGWIN)
  # MINGW should go here too
  IF(MSVC)
    # Implementation details:
    # We are using the libraries located in the VC subdir instead of the parent directory eventhough :
    FIND_LIBRARY(GDAL_DEBUG
      NAMES
        gdal18d
        gdal19d
        gdal19d
        gdal20d
        gdal21d
        gdal22d
        gdal23d
        gdal24d
        gdal25d
        gdal26d
        gdal27d
        gdal28d
        gdal29d
        gdal30d
      ${_GDAL_ROOT_HINTS_AND_PATHS}
      PATH_SUFFIXES
        "lib"
        "VC"
        "lib/VC"
    )

    FIND_LIBRARY(GDAL_RELEASE
      NAMES
        gdal18
        gdal19
        gdal19
        gdal20
        gdal21
        gdal22
        gdal23
        gdal24
        gdal25
        gdal26
        gdal27
        gdal28
        gdal29
        gdal30
      ${_GDAL_ROOT_HINTS_AND_PATHS}
      PATH_SUFFIXES
        "lib"
        "VC"
        "lib/VC"
    )

    if( CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE )
        if(NOT GDAL_DEBUG)
            set(GDAL_DEBUG ${GDAL_RELEASE})
        endif(NOT GDAL_DEBUG)     
      set( GDAL_LIBRARIES
        optimized ${GDAL_RELEASE} debug ${GDAL_DEBUG}
        )
    else()
      set( GDAL_LIBRARIES ${GDAL_RELEASE})
    endif()
    MARK_AS_ADVANCED(GDAL_DEBUG GDAL_RELEASE)
  ELSEIF(MINGW)
    # same player, for MingW
    FIND_LIBRARY(GDAL
      NAMES        
        gdal18
        gdal19
        gdal19
        gdal20
        gdal21
        gdal22
        gdal23
        gdal24
        gdal25
        gdal26
        gdal27
        gdal28
        gdal29
        gdal30
      ${_GDAL_ROOT_HINTS_AND_PATHS}
      PATH_SUFFIXES
        "lib"
        "lib/MinGW"
    )

    MARK_AS_ADVANCED(GDAL)
    set( GDAL_LIBRARIES ${GDAL})
  ELSE(MSVC)
    # Not sure what to pick for -say- intel, let's use the toplevel ones and hope someone report issues:
    FIND_LIBRARY(GDAL
      NAMES
        gdal18
        gdal19
        gdal19
        gdal20
        gdal21
        gdal22
        gdal23
        gdal24
        gdal25
        gdal26
        gdal27
        gdal28
        gdal29
        gdal30
      HINTS
        ${_GDAL_LIBDIR}
      ${_GDAL_ROOT_HINTS_AND_PATHS}
      PATH_SUFFIXES
        lib
    ) 

    MARK_AS_ADVANCED(GDAL)
    set( GDAL_LIBRARIES ${GDAL} )
  ENDIF(MSVC)
ELSE(WIN32 AND NOT CYGWIN)

  FIND_LIBRARY(GDAL_LIBRARY
    NAMES
        gdal
    HINTS
      ${_GDAL_LIBDIR}
    ${_GDAL_ROOT_HINTS_AND_PATHS}
    PATH_SUFFIXES
      "lib"
      "local/lib"
  ) 

  MARK_AS_ADVANCED(GDAL_LIBRARY)

  # compat defines
  SET(GDAL_LIBRARIES ${GDAL_LIBRARY})

ENDIF(WIN32 AND NOT CYGWIN)

 if (GDAL_INCLUDE_DIR) 
    file(READ "${GDAL_INCLUDE_DIR}/gdal_version.h" _gdal_VERSION_H_CONTENTS)
    string(REGEX REPLACE ".*#  define[ \t]+GDAL_RELEASE_NAME[ \t]+\"([0-9A-Za-z.]+)\".*"
    "\\1" GDAL_VERSION ${_gdal_VERSION_H_CONTENTS})
    set(GDAL_VERSION ${GDAL_VERSION} CACHE INTERNAL "The version number for gdal libraries")
 endif (GDAL_INCLUDE_DIR)

include(FindPackageHandleStandardArgs)

if (GDAL_VERSION)
  find_package_handle_standard_args(GDAL
    REQUIRED_VARS
      GDAL_LIBRARIES
      GDAL_INCLUDE_DIR
    VERSION_VAR
      GDAL_VERSION
    FAIL_MESSAGE
      "Could NOT find GDAL, try to set the path to GDAL root folder in the system variable GDAL_ROOT_DIR"
  )
else (GDAL_VERSION)
  find_package_handle_standard_args(GDAL "Could NOT find GDAL, try to set the path to GDAL root folder in the system variable GDAL"
    GDAL_LIBRARIES
    GDAL_INCLUDE_DIR
  )
endif (GDAL_VERSION)

message(STATUS "gdal libs=[${GDAL_LIBRARIES}] headers=[${GDAL_INCLUDE_DIR}]")
MARK_AS_ADVANCED(GDAL_INCLUDE_DIR GDAL_LIBRARIES)

Может у меня все таки что то попроще ибо я использую прототип GDAL программы не на базе NextGIS, а на базе "gdal-1.9.2"?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение Denis Rykov » 08 май 2016, 16:48

Spatial is now, more than ever, just another column- The Geometry Column.

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 17:51

Попробовал. По вашей ссылке скачал файл "FindGDAL.txt" и сделал подстановку. NextGIS у меня инсталлирован (от 25.11.2015, это свежая "демонстрационная версия", вроде бы.)

Результат, к сожалению не удачный. Ничего не изменилось. Сообщение тоже.

Может есть какой - нибудь батничек в NextGIS, чтобы инициализировать эти параметры? Или как посоветуете?

Спасибо

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 20:01

В теме Подготовка к компиляции ПО ГИС используя Visual C++ Express Edition 2008 и компоненты OSGeo4W рекомендуется установить "Установка Microsoft Platform SDK for Windows Server 2003 R2", но теперь та ссылка в теме на установщик не работает (может у кого то сохранился PSDK-x86.exe ?) и что можно посоветовать, что надо сейчас инсталлировать, чтобы не ошибиться?

Спасибо

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 20:16

Сказал из Mictosoft, что удается The Platform SDK for Microsoft® Windows® Server 2003 SP1 - это не "R2", который GisLab рекомендует !

PSDK-x86.exe -- не устанавливается на моем 64 Windows 8 ? :(

PSDK-amd64.exe - предлагает установиться, но там указываются только 64 разрядные приложения, а программа 32 разрядная - не стал устанавливать.

PSDK-ia64.exe - не устанавливаться

Может кто то посоветует как быть?

Спасибо

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение Дмитрий Барышников » 08 май 2016, 20:46

Просто укажите в cmake-gui правильные пути в вашей системе к необходимым библиотекам.

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 21:27

Дмитрий Барышников писал(а):Просто укажите в cmake-gui правильные пути в вашей системе к необходимым библиотекам.
По Вашему совету, у меня возникло предположение, что в директории CMake может храниться конфигурационный файл, который можно перенести с одного компьютера на другой, и после при необходимости подправить параметры (пути к библиотекам).

Чтобы перенести проект с одного компьютера на другой, предполагаю не нужно заново перекомпилировать с помощью CMake установки.

И также возникло предположение, что без моего предыдущего компьютера, где уставлен рабочий проект, эту задачу мне не удастся реализовать (как минимум, директорию CMake не сохранил). Вероятно, я вынужден отложить эту задачу до возвращения из отпуска, после 15 мая.

Спасибо

p.s. Сборка GDAL 1.9.0 с использованием Visual Studio 2010

glax2020
Активный участник
Сообщения: 175
Зарегистрирован: 19 ноя 2012, 15:59
Репутация: 6

Re: GDAL-Программа: Try to find the GDAL encryption library

Сообщение glax2020 » 08 май 2016, 22:39

Всем большое спасибо за помощь, проблему вроде решил. GDAL - программу скомпилировал (с компиляцией самого GDAL проблемы не было), и программа успешно проработала (как тест).

Идею от Дмитрия воспринял и решил таким образом: просто из проекта удалил файл "CMakeLists.txt" (все связи с библиотеками у меня давно в "ручном" режиме настроены).

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя