未定义对“ clock_gettime”的引用,修改makefile?

时间:2018-07-06 11:11:08

标签: linux installation ipopt

我知道这个问题是在其他地方提出的,例如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

谢谢。

1 个答案:

答案 0 :(得分:1)

我看到的ipopt配置为configure script,读为help from that script,我猜您只能添加ADD_CFLAGS编译器标志:

ADD_CFLAGS=-lrt ./configure

然后运行make。