Мой make-файл обычно содержит
CFLAGS= -Wall -Wextra -Weffc++ -Os -ggdb
...
g++ $(CFLAGS) -o junk $<
gcc $(CFLAGS) -o $@ $<
rm -f junk
Наиболее важные из этих опций обсуждались ранее, поэтому я укажу на две функции, которые еще не были указаны:
Несмотря на то, что я работаю над базой кода, которой нужно , чтобы быть простым C для переносимости на какую-то платформу, у которой все еще нет достойного компилятора C ++, я делаю "дополнительную" компиляцию с компилятором C ++ (в дополнение к компилятору C). Это имеет 3 преимущества:
- компилятор C ++ иногда выдает мне лучшие предупреждающие сообщения, чем компилятор C.
- Компилятор C ++ принимает опцию -Weffc ++, которая иногда дает мне несколько полезных советов, которые я бы упустил, если бы я только скомпилировал их в простом C.
- Я могу сделать код относительно простым для переноса на C ++, избегая нескольких граничных условий, когда простой код C является недопустимым кодом C ++ (например, определение переменной с именем "bool").
Да, я безнадежно оптимистичная Поллианна, которая все время думает, что наверняка в любой месяц, что одна платформа будет либо объявлена устаревшей, либо получит достойный компилятор C ++, и мы наконец сможем переключиться на C ++. На мой взгляд, это неизбежно - вопрос только в том, произойдет ли это до или после того, как руководство наконец выпустит всех пони. : -)