Добавление -lrt к компиляции при запуске./configure

Я возился с некоторыми исходными файлами (например, с исходным кодом пакета coreutils), добавляя к ним функциональность асинхронного ввода-вывода. Теперь я хочу скомпилировать, но мне нужно добавить флаг -lrt в gcc.

То, что я сделал, это засунул его куда-нибудь в файл Makefile. Однажды мне потребовался час, чтобы найти, где его поставить, чтобы он работал.

Интересно, есть ли способ добавить его на этапе ./configure, поэтому Makefile будет создан автоматически, и все будет просто скомпилировано с флагом -lrt?

Я попытался настроить дополнительный флаг с помощью:

./configure CFLAGS='-g -O2 -lrt'

и действительно я вижу изменение в Makefile, но оно все еще не работает.

С помощью

make V=1

Я вижу, что make выполняет:

gcc -std=gnu99   -g -O2 -lrt -Wl,--as-needed  -o src/wc src/wc.o src/libver.a lib/libcoreutils.a  lib/libcoreutils.a

обратите внимание, что -lrt находится где-то посередине, поэтому по какой-то причине он не работает. Но если это будет выполнено:

gcc -std=gnu99   -g -O2 -Wl,--as-needed  -o src/wc src/wc.o src/libver.a lib/libcoreutils.a  lib/libcoreutils.a -lrt

оно работает. Обратите внимание, что -lrt в конце.

Как я могу добавить флаг в конец автоматически через ./configure? или есть другой способ сделать это?

Частичное решение: После запуска ./configure я отредактировал Makefile и добавил -lrt в переменную LDADD, что и помогло.

0 ответов

Другие вопросы по тегам