Я пишу расширение R, которое включает в себя код C, основанный на сторонних DLL.Компиляция выполняется в Windows с использованием Rtools с R 2.11.0.Мой план состоит в том, что DLL будет распространяться вместе с исходным пакетом и храниться в каталоге src расширения.Мой вопрос тогда заключается в том, как я могу заставить компилятор искать в каталоге src, когда он пытается связаться со сторонней DLL.
В настоящее время я собираю пакет с помощью команды:
R CMD build --binary MyPackage
У меня также есть файл src / Makevars со следующей строкой:
PKG_LIBS = -ldlxapi32
Это гарантирует, что сторонняя DLL, dlxapi32.dll, будет включена в компиляцию.Однако компилятор не может найти DLL, так как каталог src моего пакета не является частью стандартного пути поиска библиотеки.
Я попытался исправить это, изменив src / Makevars следующим образом:
PKG_LIBS = -L$(CURDIR) -ldlxapi32
Но это не с выходом, подобным следующему:
gcc -shared -s -static-libgcc -o MyPackage.dll tmp.def dlx.o -L/cygdrive/c/DOCUME~1/abiel/LOCALS~1/Temp/Rbuild709236257/MyPackage/src -ldlxapi32 -Lc:/PROGRA~1/R/R-211~1.0/bin -lR
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -ldlxapi32
Здесь мы можем видеть, что $ (CURDIR) вычисляется как /cygdrive/c.DOCUME~1 / ... Я надеялся, что вместоон будет оцениваться в C: / Programming / r / MyPackage / src, который является фактическим местоположением каталога src.Есть ли способ это исправить?