Добавление -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, что и помогло.