编译“login”的原始命令

编译“login”的原始命令

我想手动编译登录命令(使用精确的 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.

有人能告诉我如何获取用于编译程序登录的确切命令吗?谢谢。

答案1

在这种情况下,如果构建由 配置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

也可以看看:

相关内容