LoadError: Не удалось открыть библиотеку 'libcurl' - PullRequest
0 голосов
/ 19 октября 2018
  • curl-7.61.1_6-win64-mingw (для libcurl и curl)
  • ОС Windows 10 Сборка: 17134,346
  • Java-версия "1.8.0_191" ruby ​​
  • ruby ​​2.4.4p296 (версия 20101-03-28 63013) [x64-mingw32]
  • jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 Java HotSpot (TM) 64-разрядная версияВиртуальная машина сервера 25.191-b12 на 1.8.0_191-b12 + jit [mswin32-x86_64]

Я пытаюсь получить доступ к базе данных neo4j, используя гем neo4j-core (8.1.4) с адаптером HTTPи я получаю ошибку ниже.Пара замечаний:

  • Первоначально машина была ОС 8.1, которую я обновил до Windows 10. Но я также попробовал новую установку.
  • Я работаю с libcurl иззавиток-7.61.1-win64-MinGW.Я пробовал 64- и 32-разрядные версии.
  • Сервер NEO4J работает нормально
  • Я получаю сообщение об ошибке при попытке установить сеанс neo4j_session = Neo4j::Core::CypherSession.new(neo4j_adaptor)
  • Я пытаюсьустановить драгоценный камень, и я получаю сообщение об ошибке «Не могу найти libcurl или curl / curl.h (RuntimeError)».CURB имеет зависимости от libcurl (я понимаю).
  • curl.exe находится в пути и прекрасно работает.Я удостоверился, что путь, содержащий libcurl.dll и curl.exe, где первый в порядке пути.
  • Я выполнил тот же сценарий, просто используя ruby, чтобы устранить любые проблемы jruby, с той же проблемой: (LoadError) libcurl ': указанный модуль не найден.
  • Я попытался зарегистрировать dll в RegSvr32, но он говорит, что не может найти dll.Тем не менее, DLL явно находится в месте, которое я указываю.Я думаю, что это поддерживает идею, что это одна из зависимостей libcurls ... но не уверен.

На данный момент довольно ясно, что система не может найти libcurl.Итак, я:

  • Обновите путь, чтобы указать каталог, в котором находится libcurl.dll
  • Я также пытаюсь поместить DLL в известные местоположения рабочего пути
  • Посмотрел haxx, чтобы лучше понять предпосылки.Никакой помощи.
  • Я использую средство обхода зависимостей на libcurl-x64.dll (curl-7.61.1-win64-mingw) и получаю в журнале следующее:

    • Ошибка: по крайней мере одна необходимая неявная или перенаправленная зависимость не найдена.
    • Ошибка: по крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта в неявно зависимом модуле.
    • Ошибка: Обнаружена циклическая зависимость.
    • Предупреждение. По крайней мере один модуль зависимости задержки-загрузки не найден.
    • Предупреждение: По крайней мере один модуль имеет неразрешенный импорт из-за отсутствия функции экспорта вмодуль, зависящий от задержки.

и вот пример модулей, которые, как он говорит, отсутствуют:

  • API-MS-WIN-CORE-CONSOLE-L3-2-0.DLL
  • API-MS-WIN-CORE-CRT-L1-1-0.DLL
  • API-MS-WIN-CORE-LARGEINTEGER-L1-1-0.DLL

Полагаю, я удивлен количеством модулей, которые, как сообщается, отсутствуют, учитывая, что в противном случае машина работает нормально.,Похоже, что некоторые были удалены как часть архитектурных изменений, основанных на этом: https://social.msdn.microsoft.com/Forums/en-US/a28331ae-19a3-4a34-b3ba-1e8fd4430375/missing-apimswincore-dlls

Libcurl - распространенный инструмент, и поэтому я удивлен удивительной болью в заднице, которая была.

Какие-нибудь мысли?Я не хочу делать чистую сборку на этом этапе, и поиск на сайтах DLL кажется не стартером.

Ошибка

 LoadError: Could not open library 'libcurl' : The operation completed successfully.
 Could not open library 'libcurl.dll' : The operation completed successfully.
 Could not open library 'libcurl.so.4' : The operation completed successfully.
 Could not open library 'libcurl.so.4.dll' : The operation completed successfully.

              block in ffi_lib at C:/jruby-9.2.0.0/lib/ruby/stdlib/ffi/library.rb:114
                           map at org/jruby/RubyArray.java:2557
                       ffi_lib at C:/jruby-9.2.0.0/lib/ruby/stdlib/ffi/library.rb:84
                 <module:Curl> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curls/settings.rb:7
                <module:Ethon> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curls/settings.rb:2
                        <main> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curls/settings.rb:1
                       require at org/jruby/RubyKernel.java:970
                       require at C:/jruby-9.2.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:59
               <module:(root)> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curl.rb:1
                 <module:Curl> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curl.rb:27
                        <main> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curl.rb:13
                       require at org/jruby/RubyKernel.java:970
                       require at C:/jruby-9.2.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:59
                        <main> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon/curl.rb:8
                       require at org/jruby/RubyKernel.java:970
                       require at C:/jruby-9.2.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:59
                        <main> at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon.rb:1
                       require at org/jruby/RubyKernel.java:970
                       require at C:/jruby-9.2.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:59
               block in (root) at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/ethon-0.11.0/lib/ethon.rb:15
               block in (root) at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/typhoeus-1.3.0/lib/typhoeus.rb:1
                        (root) at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/typhoeus-1.3.0/lib/typhoeus.rb:2
                        (root) at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/neo4j-core-8.1.4/lib/neo4j/core/cypher_session/adaptors/http.rb:1
                          HTTP at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/neo4j-core-8.1.4/lib/neo4j/core/cypher_session/adaptors/http.rb:20
   block in faraday_connection at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/neo4j-core-8.1.4/lib/neo4j/core/cypher_session/adaptors/http.rb:162
                    initialize at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/faraday-0.15.3/lib/faraday/connection.rb:89
                           new at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/faraday-0.15.3/lib/faraday.rb:70
            faraday_connection at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/neo4j-core-8.1.4/lib/neo4j/core/cypher_session/adaptors/http.rb:154
                    initialize at C:/jruby-9.2.0.0/lib/ruby/gems/shared/gems/neo4j-core-8.1.4/lib/neo4j/core/cypher_session/adaptors/http.rb:117
                        <main> at import-into-neo4j.rb:11

1 Ответ

0 голосов
/ 24 октября 2018

У меня закончилось время.Ответ (к сожалению) - обходной путь: неография

Драгоценный камень неографии, по-видимому, избегает зависимости от libcurl, которая была чумой для моего существования и все же обеспечивает достаточную абстракцию.Спасибо.

...