Общие библиотеки в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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