Как мне убедиться, что мой код компилируется с -o3 в gnu make?

492
Volumetricsteve

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

Перво-наперво, я хочу убедиться, что мой код компилируется с -o3 (много оптимизаций), но я не уверен, что это так. Я вижу кусок Makefile, который говорит:

ifeq ($(findstring $(CFLAGS),-O),) CFLAGS_COMMON += -O3 # only add -O3 if no -O flag is in $(CFLAGS) endif 

который обеспечивает некоторое утешение ... но разве не должен быть установлен флаг -O, чтобы он вообще компилировался, отрицая оператор if?

Вот весь Makefile: http://textuploader.com/bj98

0
!) В этом варианте используется заглавная буква «О». 2) См. Http://stackoverflow.com/questions/5820303/how-do-i-force-make-gcc-to-show-me-the-commands и подробный режим в http://elinux.org/Debugging_Makefiles. sawdust 8 лет назад 0

1 ответ на вопрос

1
jcoppens
LDFLAGS ?= CFLAGS ?= CXXFLAGS ?= CPPFLAGS ?= LIBS ?= RADIANT_ABOUTMSG ?= Custom build 

Я хотел бы добавить -O3к CPPFLAGS, CXXFLAGSи CFLAGS. НО:

Это только изменит код измененных файлов вашего проекта. Чтобы убедиться, что все ваши файлы перекомпилированы, сделайте make cleanсначала. НО:

Это не гарантирует внешне связанные файлы, такие как библиотеки. Те, как правило, не скомпилированы -O3. Если вы хотите убедиться, что это так, вам придется также перекомпилировать все библиотеки (не забывая изменить все их Makefile!). А также. если эти файлы зависят от других библиотек (вероятно, они есть), вам также придется их перекомпилировать.

Если это было полезно, пожалуйста, не забудьте пометить ответ как принятый (нажмите «V» слева от ответа) и / или повысить ответ (нажмите на стрелку вверх). Таким образом, другие могут легче найти это! Благодарю. jcoppens 8 лет назад 0

Похожие вопросы