Почему при сборке пакета объектный файл собирается, хотя он создан позже исходного?

Модератор: Модераторы разделов

Ответить
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Почему при сборке пакета объектный файл собирается, хотя он создан позже исходного?

Сообщение жучара »

Друзья! Понятна, надеюсь мысль? То есть везде-везде написано, что make, если объектный файл создан позже исходного, из которого он собирается, то при повторной сборке его и трогать не будет. Соответственно при внесении изменений и пересборке проекта экономится время. Как бы не так.

Пакет hello скачаем, соберём

Shell

$ dpkg-buildpackage -us -uc > ../log_0.txt
Посмотрим лог log_0.txt и найдём такую команду.
gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -Ilib -I./lib -Isrc -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/home/user/hello/hello-2.10=. -fstack-protector-strong -Wformat -Werror=format-security -c -o src/hello.o src/hello.c
Ну всё правильно, кропается объектный файл из исходного:
-c -o src/hello.o src/hello.c

Снова команднём

Shell

$ dpkg-buildpackage -us -uc > ../log_1.txt
В логе log_1.txt опять найдём такую команду:
gcc -DLOCALEDIR=\"/usr/share/locale\" -DHAVE_CONFIG_H -I. -Ilib -I./lib -Isrc -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/home/user/hello/hello-2.10=. -fstack-protector-strong -Wformat -Werror=format-security -c -o src/hello.o src/hello.c
Несмешные какие-то шутки. Файл hello.c не менялся, файл hello.o создан позднее hello.c Чего оно лезет его пересобирывать? Спасибо, кто откликнется. Debian 11.
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Почему при сборке пакета объектный файл собирается, хотя он создан позже исходного?

Сообщение Bizdelnick »

Потому что dpkg-buildpackage перед сборкой удаляет все файлы, которых нет в архиве с исходниками (кроме каталога debian, конечно). Можно это отключить опцией -nc (--no-pre-clean).
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 950
ОС: астралинукс

Re: Почему при сборке пакета объектный файл собирается, хотя он создан позже исходного?

Сообщение жучара »

Bizdelnick писал:
20.05.2022 10:52
Потому что dpkg-buildpackage перед сборкой удаляет все файлы, которых нет в архиве с исходниками (кроме каталога debian, конечно).
Так а как этого избежать? А, прочёл уже.
Я просто читаю маны.
Спасибо сказали:
Ответить