I cannot install RDCOMClient, using R-3.6
Some background: RDCOMClient works in my R-3.51 instance, and I need to use 3.6, and I need to use RDCOMClient to interact with my desktop's Outlook. mailR and sendmailR are not currently an option.
Thing's I've tried:
>install.packages("RDCOMClient")
Installing package into ‘C:/Users/<user>/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
Warning in install.packages :
package ‘RDCOMClient’ is not available (for R version 3.6.0)
> library("devtools")
> install_github('omegahat/RDCOMClient')
Error: Failed to install 'unknown package' from GitHub:
Timeout was reached: Connection timed out after 10000 milliseconds
> install.packages("RDCOMClient", repos = "http://www.omegahat.org/R")
Installing package into ‘C:/Users/<users>/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
Warning in install.packages :
unable to access index for repository http://www.omegahat.org/R/src/contrib:
cannot open URL 'http://www.omegahat.org/R/src/contrib/PACKAGES'
Warning in install.packages :
package ‘RDCOMClient’ is not available (for R version 3.6.0)
Warning in install.packages :
unable to access index for repository http://www.omegahat.org/R/bin/windows/contrib/3.6:
cannot open URL 'http://www.omegahat.org/R/bin/windows/contrib/3.6/PACKAGES'
> install.packages("RDCOMClient", repos = "http://www.omegahat.net/R")
Installing package into ‘C:/Users/<user>/Documents/R/win-library/3.6’
(as ‘lib’ is unspecified)
Warning in install.packages :
unable to access index for repository http://www.omegahat.net/R/bin/windows/contrib/3.6:
cannot open URL 'http://www.omegahat.net/R/bin/windows/contrib/3.6/PACKAGES'
Package which is only available in source
form, and may need compilation of
C/C++/Fortran: ‘RDCOMClient’
installing the source package ‘RDCOMClient’
trying URL 'http://www.omegahat.net/R/src/contrib/RDCOMClient_0.93-0.tar.gz'
Content type 'application/x-gzip' length 49509 bytes (48 KB)
downloaded 48 KB
* installing *source* package 'RDCOMClient' ...
** using staged installation
** libs
*** arch - i386
C:/Rtools/mingw_32/bin/g++ -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -D_GNU_ -DNO_PYCOM_IPROVIDECLASSINFO -I. -Wno-deprecated -O2 -Wall -mtune=generic -c COMError.cpp -o COMError.o
COMError.cpp:347:0: warning: "_countof" redefined
#define _countof(array) (sizeof(array)/sizeof(array[0]))
^
In file included from C:/Rtools/mingw_32/i686-w64-mingw32/include/combaseapi.h:129:0,
from C:/Rtools/mingw_32/i686-w64-mingw32/include/objbase.h:14,
from C:/Rtools/mingw_32/i686-w64-mingw32/include/ole2.h:17,
from C:/Rtools/mingw_32/i686-w64-mingw32/include/wtypes.h:12,
from C:/Rtools/mingw_32/i686-w64-mingw32/include/winscard.h:10,
from C:/Rtools/mingw_32/i686-w64-mingw32/include/windows.h:97,
from RCOMObject.h:23,
from COMError.cpp:1:
C:/Rtools/mingw_32/i686-w64-mingw32/include/stdlib.h:299:0: note: this is the location of the previous definition
#define _countof(_Array) sizeof(*__countof_helper(_Array))
^
In file included from COMError.cpp:1:0:
RCOMObject.h: In member function 'virtual ULONG RCOMObject::Release()':
RCOMObject.h:61:50: warning: deleting object of abstract class type 'RCOMObject' which has non-virtual destructor will cause undefined behaviour [-Wdelete-non-virtual-dtor]
delete this;
^
COMError.cpp: In function 'void GetScodeString(HRESULT, LPTSTR, int)':
COMError.cpp:371:39: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'HRESULT {aka long int}' [-Wformat=]
sprintf(buf, ("OLE error 0x%08x"), hr);
^
COMError.cpp: In function 'HRESULT checkErrorInfo(IUnknown*, HRESULT, SEXPREC**)':
COMError.cpp:409:51: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'HRESULT {aka long int}' [-Wformat=]
fprintf(stderr, "<checkErrorInfo> %X \n", status);
^
C:/Rtools/mingw_32/bin/gcc -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -D_GNU_ -DNO_PYCOM_IPROVIDECLASSINFO -I. -O3 -Wall -std=gnu99 -mtune=generic -c RUtils.c -o RUtils.o
C:/Rtools/mingw_32/bin/g++ -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -D_GNU_ -DNO_PYCOM_IPROVIDECLASSINFO -I. -Wno-deprecated -O2 -Wall -mtune=generic -c connect.cpp -o connect.o
connect.cpp: In function 'HRESULT R_getCOMArgs(SEXP, DISPPARAMS*, DISPID*, int, int*)':
connect.cpp:405:10: warning: variable 'hr' set but not used [-Wunused-but-set-variable]
HRESULT hr;
^
C:/Rtools/mingw_32/bin/g++ -I"C:/PROGRA~1/R/R-36~1.0/include" -DNDEBUG -D_GNU_ -DNO_PYCOM_IPROVIDECLASSINFO -I. -Wno-deprecated -O2 -Wall -mtune=generic -c converters.cpp -o converters.o
In file included from converters.cpp:1:0:
RCOMObject.h: In member function 'virtual ULONG RCOMObject::Release()':
RCOMObject.h:61:50: warning: deleting object of abstract class type 'RCOMObject' which has non-virtual destructor will cause undefined behaviour [-Wdelete-non-virtual-dtor]
delete this;
^
converters.cpp: In function 'SEXPREC* R_convertDCOMObjectToR(VARIANT*)':
converters.cpp:365:11: warning: variable 'hr' set but not used [-Wunused-but-set-variable]
HRESULT hr;
^
C:/Rtools/mingw_32/bin/g++ -shared -s -static-libgcc -o RDCOMClient.dll tmp.def COMError.o RUtils.o connect.o converters.o -lole32 -loleaut32 -luuid -LC:/PROGRA~1/R/R-36~1.0/bin/i386 -lR
COMError.o:COMError.cpp:(.text+0x2b3): undefined reference to `vtable for RCOMObject'
COMError.o:COMError.cpp:(.text+0x4c3): undefined reference to `vtable for RCOMObject'
COMError.o:COMError.cpp:(.text$_ZN10RCOMObject7ReleaseEv+0x19): undefined reference to `vtable for RCOMObject'
converters.o:converters.cpp:(.text+0x175d): undefined reference to `vtable for RCOMObject'
collect2.exe: error: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'RDCOMClient'
* removing 'C:/Users/<user>/Documents/R/win-library/3.6/RDCOMClient'
Warning in install.packages :
installation of package ‘RDCOMClient’ had non-zero exit status
The downloaded source packages are in
‘C:\Users\<user>\AppData\Local\Temp\Rtmpc7CCRI\downloaded_packages’
I suspect RDCOMClient doesn't support 3.6, seeing as it's not in the directory here: http://www.omegahat.net/R/bin/windows/contrib/, but I figured I'd try here before I move on.
Is there anything I can do to get it working?
It is not so, that RDCOMClient doesn't support R3.6. It only has not (yet) been compiled with 3.6x and been placed in the subdirectory of the current version in the repository "http://www.omegahat.net/R/bin/windows/contrib/3.6/". However the version 0.93-0 compiled with R 3.5x is fully compatible with R 3.6x, just download it from the 3.5 directory "http://www.omegahat.net/R/bin/windows/contrib/3.5.1/" and install as zip from your local PC.
Or do it directly
url <- "http://www.omegahat.net/R/bin/windows/contrib/3.5.1/RDCOMClient_0.93-0.zip"
install.packages(url, repos=NULL, type="binary")