Неопределенная ссылка на clock_gettime, изменить makefile?

Я знаю, что этот вопрос задавали в другом месте, например здесь, но я не смог найти там решение моей конкретной проблемы.

Я пытался установить программное обеспечение Ipopt в Linux, следуя инструкциям в документации, но когда я запускаю 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-файл, в какой make-файл и где именно в make-файле. К вашему сведению, вот архив 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

Спасибо.


person James    schedule 06.07.2018    source источник


Ответы (1)


Я вижу, что ipopt настроен с помощью скрипта настройки, читая помощь из этого скрипта я думаю, вы можете просто добавить флаги компилятора ADD_CFLAGS:

ADD_CFLAGS=-lrt ./configure

а затем запустить сделать.

person KamilCuk    schedule 06.07.2018
comment
Это работает, спасибо. - person James; 06.07.2018