У меня есть код C++, который использует gdal в качестве библиотеки. Скомпилировано с помощью компилятора Intel C++ 16 в Visual Studio 2013.
В конфигурации я указываю путь к библиотеке gdal и файл библиотеки для связи:
Дополнительные каталоги библиотек: C:\OSGeo4W64\lib (где находится gdal_i.lib)
Дополнительные зависимости: gdal_i.lib
Несколько месяцев назад это работало, но что-то должно было измениться в моей системе. Теперь, когда я пытаюсь запустить исполняемый файл, я получаю всплывающее окно с ошибкой:
Порядковый номер 361 не может быть найден в библиотеке динамической компоновки SSLEAY32.dll
Я могу это исправить, скопировав SSLEAY32.dll из папки gdal в папку исполняемых файлов или удалив все вызовы gdal из моего кода, но мне бы хотелось скорее исправить мою систему. Как указать Windows искать в правильном каталоге (я много играл с PATH, но безуспешно).
При использовании Dependency Walker кажется, что gdal.dll не тот, который указан в моем пути OSGEO, а взят из моей установки miniconda. Есть ли чистый способ это исправить? Я подумал, что если библиотеки имеют зависимости в одной папке, они будут использоваться.
[img]https:/ /i.sstatic.net/2nmTs.jpg[/img]
РЕДАКТИРОВАТЬ: Решение, благодаря ответу Найду:
добавьте C:\OSGeo4W64\bin; в начало моего пути, чтобы правильный gdal202.dll использовался в приоритете.
но теперь python больше не запускается, потому что он выбирает свои собственные библиотеки gdal не в папке miniconda, а в OSGeo4W64... Я могу получить и то, и другое работает по одному и тому же пути, но не по обоим
решение сначала поместите в PATH каталог исполняемого файла Miniconda Python, затем путь к библиотекам OSGeo4W64, затем Miniconda путь к библиотекам
Подробнее здесь: https://stackoverflow.com/questions/477 ... -wrong-dll