R 使用最新版本的cplex 12.10.0安装cplexAPI-新错误
我想安装cplexAPI R软件包以与最新版本的IBM CPLEX解算器(IBM ILOG CPLEX Optimizers 12.10.0)交互,但我一直收到以下错误:R 使用最新版本的cplex 12.10.0安装cplexAPI-新错误,r,package,cplex,R,Package,Cplex,我想安装cplexAPI R软件包以与最新版本的IBM CPLEX解算器(IBM ILOG CPLEX Optimizers 12.10.0)交互,但我一直收到以下错误: CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory. * installing *source* package 'cple
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
* installing *source* package 'cplexAPI' ...
** package 'cplexAPI' successfully unpacked and MD5 sums checked
** using staged installation
** libs
*** arch - i386
"C:/rtools40/mingw32/bin/"gcc -I"C:/Users/USERNAME/R/R-40~1.3/include" -DNDEBUG -g -D_R_=1 -DUSE_R=1 -I"C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include" -O2 -Wall -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c cplexAPI.c -o cplexAPI.o
C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
# define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include/ilcplex/cplex.h:1214:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
CPXDEPRECATEDAPI(12090000)
^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include/ilcplex/cpxconst.h:251:41: error: expected identifier or '(' before ')' token
# define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include/ilcplex/cplex.h:1214:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
CPXDEPRECATEDAPI(12090000)
^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
# define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
我已经做了以下工作:
.Renviron
文件中添加了PATH=“${RTOOLS40_HOME}\usr\bin;${PATH}”
C:\Program Files\IBM\ILOG\CPLEX\u Studio1210中安装IBM CPLEX
.Renviron
文件中添加了以下路径:
CPLEX\u STUDIO\u DIR=“C:\Program Files\IBM\ILOG\CPLEX\u Studio1210”
CPLEX\u STUDIO\u LIB=“C:\Program Files\IBM\ILOG\CPLEX\u Studio1210\CPLEX\LIB”
install.packages('cplexAPI')
。我还尝试手动下载tar.gz文件并修改Makevars.win文件中的路径,但我得到了相同的错误。
仅供参考,我有以下R版本:
这似乎是cplex库中的一个bug。另见: 解决方法是将
-DBUILD\u CPXSTATIC
添加到包src/Makevars.win中的PKG\u CPPFLAGS
,如下所示:
我还必须更新dll名称,因为cplex dll被称为cplex12100.dll
,而R包仍然假设cplex1263.dll
。通过这些修复,我可以在Windows上安装该软件包:
install.packages(“slam”)
安装.packages('https://github.com/r-windows/Rcplex/archive/master.tar.gz,repos=NULL,INSTALL_opts='--no-multiarch')
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 4
minor 0.3
year 2020
month 10
day 10
svn rev 79318
language R
version.string R version 4.0.3 (2020-10-10)
nickname Bunny-Wunnies Freak Out