我知道这个问题是在其他地方提出的,例如here,但是我在那里找不到我特定问题的解决方案。
我一直在尝试在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 archive,您可以在其中找到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
谢谢。
答案 0 :(得分:1)
我看到的ipopt配置为configure script,读为help from that script,我猜您只能添加ADD_CFLAGS编译器标志:
ADD_CFLAGS=-lrt ./configure
然后运行make。