1

我知道这个问题已经在其他地方被问过,例如在这里,但我在那里找不到我的具体问题的解决方案。

我一直在尝试在 Linux 上安装软件Ipopt,按照文档中的说明进行操作,但是当我运行 make 时出现以下错误:

/obs/xxx/Ipopt-3.12.8/build/ThirdParty/ASL/.libs/libcoinasl.so: undefined reference to `clock_gettime'
collect2: ld returned 1 exit status
make[3]: *** [ipopt] Error 1
make[3]: Leaving directory `/xxx_home/xxx/Ipopt-3.12.8/build/Ipopt/src/Apps/AmplSolver'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/xxx_home/xxx/Ipopt-3.12.8/build/Ipopt/src/Apps'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/xxx_home/xxx/Ipopt-3.12.8/build/Ipopt'
make: *** [all-recursive] Error 1

根据上面的帖子,解决这个问题的方法是包含 -lrt 标志,但我不知道我是否应该将它插入到 make 文件中,在什么 makefile 中,以及在 makefile 中的确切位置。仅供参考,这是我一直在使用的Ipopt 存档,您可以在其中找到 Makefile,这是有关我的 linux 发行版的一些信息

$ uname -or
3.2.0-0.bpo.4-amd64 GNU/Linux
$ lsb_release -irc
Distributor ID: Debian
Release:    6.0.10
Codename:   squeeze

谢谢你。

4

1 回答 1

2

我看到的 ipopt 配置了配置脚本,从该脚本中阅读帮助我猜你可以只添加 ADD_CFLAGS 编译器标志:

ADD_CFLAGS=-lrt ./configure

然后运行make。

于 2018-07-06T12:46:56.893 回答