Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用最新版本的cplex 12.10.0安装cplexAPI-新错误_R_Package_Cplex - Fatal编程技术网

R 使用最新版本的cplex 12.10.0安装cplexAPI-新错误

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

我想安装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 '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)
           
     
我已经做了以下工作:

  • 已从安装的Rtools40[https://cran.r-project.org/bin/windows/Rtools/][1] ,并在我的
    .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