Указанный модуль не может быть найден в R

Я разрабатываю пакет, используя Rcpp и другую стороннюю библиотеку C++. Когда я попытался установить пакет, я получил

Error in inDL(x, as.logical(local), as.logical(now), ...) : 
  unable to load shared object 'C:/Users/Admin/Documents/R/win-library/2.15/packagename/libs/i386/package.dll':
   LoadLibrary failure:  The specified module could not be found.

В 32-битной ОС Windows, следуя совету моего коллеги, я решил проблему, добавив местоположение следующих dll из MingW в системный путь.

libgcc_s_dw2-1.dll

Но в 64-битной Windows я получаю ту же ошибку даже с dll, хотя я использую 32-битную версию R.

Итак, мой вопрос:

Есть ли способ узнать, почему возникает ошибка The specified module could not be found? Я имею в виду, что я хотел бы знать, какой модуль отсутствует. Может где-то подробный вариант?


person Tae-Sung Shin    schedule 21.11.2012    source источник
comment
Мы документируем, как использовать Rcpp с другими библиотеками в виньетке Rcpp-пакета, а также в другой виньетке. Я подозреваю, что ваш шаг ссылки неверен; но это невозможно сказать из предоставленной вами информации.   -  person Dirk Eddelbuettel    schedule 21.11.2012
comment
Когда вы говорите системный путь, вы имеете в виду 32-битный каталог SysWoW?   -  person Matthew Lundberg    schedule 21.11.2012


Ответы (5)


В R нет простого способа получить больше информации об ошибке, которую я упомянул. Но я нашел бесплатное программное обеспечение, чтобы найти, какая зависимость отсутствует, на следующем веб-сайте: http://www.dependencywalker.com/

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

GPSVC.dll
IESHIMS.dll
SYSNIFY.dll
person Tae-Sung Shin    schedule 21.11.2012
comment
Похоже, вы смешиваете библиотеки, скомпилированные VS и MinGW. Это не для слабонервных, и не то, что обычно является документом для R или Rcpp. - person Dirk Eddelbuettel; 26.11.2012
comment
Тогда ваш путь неправильный, простой и понятный. Как собирать пакеты в Windows четко описано в нескольких местах, но вы должны следовать этому письму. - person Dirk Eddelbuettel; 26.11.2012

Как намекает сообщение Win 7, 64-разрядная версия, проблемы с dll, вывод из dependencywalker может вводить в заблуждение. В моем случае путь к «Microsoft SQL Server» отсутствовал в моей системной переменной среды %PATH% (преднамеренно удален, потому что это казалось ненужным). После этого ошибка LoadLibrary исчезла и библиотека загрузилась.

person Egus    schedule 17.11.2015

Я верю, что вы можете запустить свое программное обеспечение R как администратор, вы можете решить свою проблему... Вы можете проверить: Невозможно загрузить какой-либо пакет в R (невозможно загрузить общий объект)

person Jalles10    schedule 28.08.2016

Я столкнулся с той же проблемой, и проблема оказалась в том, что Windows не искала jvm.dll в нужном месте. Решение состояло в том, чтобы добавить местоположение этой dll в переменную Windows PATH.

Решение найдено здесь: Использование пакета rJava на 64-разрядной версии Win7 с R

Инструкции по редактированию переменной PATH здесь: https://www.java.com/en/download/help/path.xml

person wwwhitney    schedule 17.05.2017

Я также столкнулся с ошибкой

«Предупреждение в install.packages: установка пакета ‘rlang’ имела ненулевой статус выхода».

Я выполнил следующие шаги

  1. перезапустите RStudio,
  2. install.packages("tidyverse")
  3. удалил папку C:/Users/CHILIKA/Documents/R/win-library/3.5/00LOCK-rlang

и снова

  1. install.packages("rlang"), то rlang успешно установлен.
person Subhasis Pradhan    schedule 23.03.2019