首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cplexAPi安装编译失败

cplexAPi安装编译失败
EN

Stack Overflow用户
提问于 2020-09-24 01:55:14
回答 1查看 135关注 0票数 1

我试图用R语言解决一个非常大的优化问题,所以我想安装rcplex,但遇到了很多问题(参见Install rcplex on windows)。因为它是最近更新的,所以我正在尝试安装cplexAPi,并遵循Windows10的这个https://cran.r-project.org/web/packages/cplexAPI/INSTALL。所以我将makevars.win文件更改为

代码语言:javascript
运行
复制
PKG_CPPFLAGS=-g -D_R_=1 -DUSE_R=1 -I"C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include"
PKG_LIBS=-L"C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\bin\x64_win64" -lm -lcplex12100

并获取

代码语言:javascript
运行
复制
"C:\Program Files\R\R-4.0.2\bin\x64\R.exe" CMD  build --no-build-vignettes --no-manual --md5 C:/Users/Jonas/Desktop/cplexAPI
* checking for file 'C:/Users/Jonas/Desktop/cplexAPI/DESCRIPTION' ... OK
* preparing 'cplexAPI':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking vignette meta-information ... OK
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
* adding MD5 file
* building 'cplexAPI_1.4.0.tar.gz'
Warning: file 'cplexAPI/cleanup' did not have execute permissions: corrected
Warning: file 'cplexAPI/configure' did not have execute permissions: corrected

代码语言:javascript
运行
复制
"C:\Program Files\R\R-4.0.2\bin\x64\R.exe" CMD INSTALL --build --no-multiarch .\cplexAPI_1.4.0.tar.gz
* installing to library 'C:/Users/Jonas/Documents/R/win-library/4.0'
* installing *source* package 'cplexAPI' ...
** package 'cplexAPI' successfully unpacked and MD5 sums checked
** using staged installation
** libs
"C:/rtools/mingw64/bin/"gcc  -I"C:/PROGRA~1/R/R-40~1.2/include" -DNDEBUG -g -D_R_=1 -DUSE_R=1 -I"C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include"         -O2 -Wall  -std=gnu99 -mfpmath=sse -msse2 -mstackrealign -c cplexAPI.c -o cplexAPI.o
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1214:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1214:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1220:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1220:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1251:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1251:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1257:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1257:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1262:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1262:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cpxconst.h:251:62: error: expected ')' before 'deprecated'
 #      define CPXDEPRECATEDAPI(version) __declspec(dllimport deprecated)
                                                              ^~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\cplex\include/ilcplex/cplex.h:1617:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
C:\Program Files\IBM\ILOG\CPLEX_Studio_Community1210\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_Studio_Community1210\cplex\include/ilcplex/cplex.h:1617:1: note: in expansion of macro 'CPXDEPRECATEDAPI'
 CPXDEPRECATEDAPI(12090000)
 ^~~~~~~~~~~~~~~~
make: *** [C:/PROGRA~1/R/R-40~1.2/etc/x64/Makeconf:222: cplexAPI.o] Error 1
ERROR: compilation failed for package 'cplexAPI'
* removing 'C:/Users/Jonas/Documents/R/win-library/4.0/cplexAPI'

我不知道现在该怎么做。

EN

回答 1

Stack Overflow用户

发布于 2021-09-19 01:29:01

我也犯过同样的错误。此错误的解决方案是在Makevars.win的第一行末尾添加-DBUILD_CPXSTATIC,使文件如下所示:

代码语言:javascript
运行
复制
PKG_CPPFLAGS=-g -D_R_=1 -DUSE_R=1 -I"${CPLEX_STUDIO_DIR}\cplex\include" -DBUILD_CPXSTATIC
PKG_LIBS=-L"${CPLEX_STUDIO_LIB}" -lm -lcplex1261
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64033703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档