Общие библиотеки в Windows – зависимости с использованием неправильной dllC++

Программы на C++. Форум разработчиков
Anonymous
Общие библиотеки в Windows – зависимости с использованием неправильной dll

Сообщение Anonymous »

У меня есть код 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

Вернуться в «C++»