2016-02-01 2 views
-3

У меня проблемы с make-файлом. Я не уверен, почему.makefile C, gcc

Мои модули распределены следующим образом:

main.c:

#include "LL.h" 

LL.c:

#include "LL.h" 

LL.h: --- -

Makefile:

#makefile 

a.out: main.o LL.o 
    gcc main.o LL.o 

main.o: main.c LL.h 
    gcc -g -c main.c 

LL.o: LL.c LL.h 
    gcc -g -c LL.c 

Я использую виртуальную машину с Ubuntu, и в самом деле часы получает LAPSED по сравнению с окнами часов.

Я получаю это сообщение на стандартный вывод:

марка: Внимание: Файл `a.out 'имеет время модификации 3.8e + 03 s в будущем

составляют:` a.out' является до Дата.

сделать: предупреждение: обнаружено обнаружение перекоса. Ваша сборка может быть неполной.

и иногда будет пытаться связать/скомпилировать определенные строки марки.

Ищет просветительский Спасибо;)

+0

оценил закрытие, так как возможные дубликаты: [Компиляция C++ на удаленном компьютере Linux - «часы (http://stackoverflow.com/questions/3824500/compiling-c-on-remote-linux-machine-clock-skew-detected-warning) и [Makefile: обнаружено искажение часов] (http://stackoverflow.com/questions/13745645/makefile-clock-skew-detected) и другие. –

ответ

0

Программа make использует метки времени изменения, чтобы проверить, является ли файл старше своих зависимостей. Если файл имеет временную метку, которая находится в будущем, make выдает предупреждение, которое вы наблюдаете.

Решение этой проблемы заключается в том, чтобы часы на вашей виртуальной машине оставались равными часам на главном компьютере. Рассмотрите возможность использования NTP для синхронизации обоих часов с внешним опорным тактовым сигналом.

Чтобы решить эту проблему для одной сборки, touch всех исходных файлов, поэтому их временные метки будут сброшены в настоящую:

touch *.c *.h 
+0

все в порядке! спасибо, я попытался установить NTP, но, к сожалению, у меня нет разрешения. Спасибо, в любом случае. – Jaime38130

+0

@ Jaime38130 Пожалуйста, отметьте ответ как принятый, если на ваш вопрос был дан ответ. – fuz

Смежные вопросы