Сохраняйте распечатки предупреждений компилятора из скомпилированного кода, используя g ++ и Makefiles - PullRequest
3 голосов
/ 04 ноября 2011

У меня есть Makefile, который компилирует / перекомпилирует только то, что необходимо.Однако, даже после того, как что-то скомпилировано, я хотел бы видеть их предупреждения о компиляции.

Мой сценарий таков: 1) Я создаю файл с именем snake.cpp.2) Я делаю свой проект.snake.cpp имеет 3 предупреждения и 0 ошибок.3) Я создаю другой файл с именем cup.cpp. 4) Я создаю свой проект, теперь я вижу предупреждения cup.cpp, но ни одного предупреждения snake.cpp.

Но я хочу видеть предупреждения snake.cpp, хотякомпиляция пропускается командой make.Я не хочу перекомпилировать весь проект с -Werror.На самом деле, я не хочу ничего перекомпилировать, если я не отредактировал соответствующие файлы, но я все равно хотел бы увидеть предупреждения.

Каков наилучший способ достижения этого?

1 Ответ

3 голосов
/ 04 ноября 2011

Компиляция не пропущена «по ошибке», она пропущена, потому что исполняемый файл / объект новее исходного.Вот как работают make-файлы.И единственный способ получить предупреждения без перекомпиляции - хранить их где-нибудь.Похоже, ваше решение состоит в том, чтобы перенаправить ошибки в файл журнала и распечатать их обратно, когда вы make.Возможно, это сработает, но я не проверял это:

all: snake cup
    @cat snake.err
    @cat cup.err

snake: snake.cpp
    g++ snake.cpp -o snake 2>snake.err

cup: cup.cpp
    g++ cup.cpp -o cup 2>cup.err

.PHONY: all

Если они оба являются частью одного исполняемого файла, вы вместо этого захотите создавать объекты.

...