Я хочу вручную скомпилировать команду входа в систему (с точными командами CC и LD).
https://packages.ubuntu.com/groovy/login
/tmp/shadow_4.8.1.orig/src$ make VERBOSE=1
CC login.o
CCLD login
Приведенная выше команда не показывает точную команду.Когда я запускаю следующее, я вижу следующую ошибку.
$ gcc -o login login.c
login.c:33:10: fatal error: config.h: No such file or directory
33 | #include <config.h>
| ^~~~~~~~~~
compilation terminated.
Может ли кто-нибудь показать мне, как получить точные команды, используемые для компиляции входа в программу? Спасибо.
В этом случае, когда сборка настроена с помощью automake
, вам потребуется V = 1
, а не VERBOSE = 1
:
$ make V=1 login
gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../libmisc -DLOCALEDIR=\"/usr/share/locale\" -g -O2 -MT login.o -MD -MP -MF .deps/login.Tpo -c -o login.o login.c
login.c: In function ‘alarm_handler’:
login.c:424:2: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
424 | write (STDERR_FILENO, tmsg, strlen (tmsg));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/login.Tpo .deps/login.Po
gcc -DHAVE_CONFIG_H -I. -I.. -I../lib -I../libmisc -DLOCALEDIR=\"/usr/share/locale\" -g -O2 -MT login_nopam.o -MD -MP -MF .deps/login_nopam.Tpo -c -o login_nopam.o login_nopam.c
login_nopam.c: In function ‘netgroup_match’:
login_nopam.c:198:3: warning: ignoring return value of ‘getdomainname’, declared with attribute warn_unused_result [-Wunused-result]
198 | getdomainname (domain, MAXHOSTNAMELEN);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mv -f .deps/login_nopam.Tpo .deps/login_nopam.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -o login login.o login_nopam.o ../libmisc/libmisc.a ../lib/libshadow.la -lcrypt
libtool: link: gcc -g -O2 -o login login.o login_nopam.o ../libmisc/libmisc.a ../lib/.libs/libshadow.a -lcrypt
Для сборки всего пакет, перейдите в родительский каталог каталога src
и запустите
./configure
make
См. также: