Привет, я пытаюсь работать с rcpp. Для этого мне нужен код cpp, который загружает dll с помощью lib-файла (который имеет то же имя, что и ). код, который я запускаю:
cppFunction(includes=c("#include "windef.h","#include \"C:/data/Rdata/IHUAPI.H\" "), 'int functietom(int a){long serverhandle;int lRet;lRet = ihuConnect ( "historian1",NULL,NULL, &serverhandle ); return 5;}', verbose
= TRUE)
Я получаю следующую ошибку:
неопределенная ссылка на `ihuConnect@16' collect2: ld вернул 1 статус выхода Ошибка в inDL(x, as.logical(local), as.logical(now), ...):
невозможно загрузить общий объект 'C :/Users/user1663/AppData/Local/Temp/RtmpSW1Ki7/sourcecpp_1a04df63309/sourceCpp_26588.dll': Ошибка загрузки библиотеки:
функция ihuConnect
находится в файлах ihuapi.lib
и ihuape.dll
. В С++ в Visual Studio я добавляю файл lib как добавленную зависимость, а затем избавляюсь от этой ошибки, потому что я тоже иногда получаю эту ошибку, а затем я забыл добавить файл lib в компиляцию.
Таким образом, мой вопрос: как я могу добавить этот файл lib в качестве опции в компиляцию.
когда я использую dyn.load
("C:/data/Rdata/ihUAPI.dll")
а затем проверьте, загружен ли он, затем он говорит, что да, проблема в том, что getDLLRegisteredRoutines ('ihUAPI', addNames = TRUE), затем он говорит: кадр данных с 0 столбцами и 0 строками
поэтому dll, похоже, не содержит функций, но это так, когда я использую ее из Visual Studio.
Пожалуйста, помогите с lib-файлами и ddl-файлами.
Том Вамбек