我正在尝试使用 cmake 安装 SCIP,MILP 优化软件。首先,我从here下载了 SCIP Optimization Suite,然后按照instructions,我开始使用 cmake 构建 SoPlex(这表明 SCIP 依赖)。我将其指向适当的目录,然后尝试构建 SCIP。 Cmake 没有抛出任何错误,但是当需要“make”它时,它完成了大约 60%,然后抛出了以下错误:
Linking CXX executable ../../bin/scip
Undefined symbols for architecture x86_64:
"_free_history_entry", referenced from:
_SCIPdialoghdlrAddHistory in dialog.c.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[2]: *** [bin/scip] Error 1
make[1]: *** [scip/src/CMakeFiles/scip.dir/all] Error 2
make: *** [all] Error 2
我做了一些谷歌搜索来诊断这个问题,但我发现的所有内容似乎都与我没有使用的 XCode 有关?
*我使用的是运行 10.11.3 的 Mac
**我为公然滥用术语而道歉,但我确信我对这些术语的滥用并不熟悉,但我对所有这些编译内容并不熟悉。
如果您安装了
readline
库但 cmake 链接了错误的库,则可能会发生这种情况。
我最近遇到了这个错误,我发现cmake正在链接另一个随anaconda3安装的
readline
,而不是直接通过brew安装的。删除 anaconda 解决了这个问题。