2013-08-07 5 views
1

Можно ли переопределить флаги определения времени выполнения в make/configure/cmake, чтобы определить уровень оптимизации архитектуры и переопределить его?Переопределить флаги компиляции GCC

Например ./configure & сделать обнаружит современный процессор с SSE, например, я хотел бы переопределить и установить: когда GCC компилирует файл .cpp, он всегда будет использовать -march = i586

Возможно ли это? Благодаря!

ответ

0

./configure --help

Поможет вам

Some influential environment variables: 
CXX   C++ compiler command 
CXXFLAGS C++ compiler flags 
LDFLAGS  linker flags, e.g. -L<lib dir> if you have libraries in a 
      nonstandard directory <lib dir> 
LIBS  libraries to pass to the linker, e.g. -l<library> 
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if 
      you have headers in a nonstandard directory <include dir> 
CC   C compiler command 
CFLAGS  C compiler flags 
CPP   C preprocessor 
CXXCPP  C++ preprocessor 

CFLAGS =»" ./configure

+0

Спасибо. Я искал более глобальный подход. Сервер сборки должен перестроить большой репозиторий с большим количеством модулей (> 30), и я в лучшем случае не хотел бы менять каждый шаг ... вместо этого вместо ** gcc ** на ** - march = i586 **. .. если того возможно. И иногда ** cmake ** используется вместо настройки – Hhut

+0

На самом деле вы можете уточнить свою задачу? Похоже, вы пишете менеджер пакетов. Вы уверены, что хотите такую ​​оптимизацию? – Maquefel

+0

Я выхожу из промежуточного хранилища, содержащего несколько модулей, я делаю одно * делаю все *, а затем получаю пакет промежуточного lib/include, содержащий все это промежуточное программное обеспечение, которое может использоваться для (связанных) проектов. Но теперь целевая платформа изменилась, и все нужно построить с помощью ** - march = i586 **. Я хотел бы обойти все дальнейшие вызовы gcc/g ++ для использования ** - march = i586 ** – Hhut

0

Каждый скрипта конфигурации отличается, нет никакой волшебной пули. Если вы хотите надежно переопределить флагов компилятора gcc, создайте сценарий оболочки для/usr/bin/gcc и добавьте/измените нужные флаги и поместите свой скрипт в начало вашего PATH.

Вы можете использовать экспорт CC & CXX, чтобы указать на ваш сценарий оболочки gcc, но я видел скрипты, которые предикат на 'if CC == "gcc"', который сломается.

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