是否有可能覆蓋運行檢測標誌make/configure/cmake檢測體系結構優化級別並覆蓋它?覆蓋GCC編譯標誌
例如的./configure & 使將檢測到現代的CPU與SSE例如,我想重寫,並設置:當GCC編譯一個.cpp文件,它總是使用-march = i586
這可能嗎?謝謝!
是否有可能覆蓋運行檢測標誌make/configure/cmake檢測體系結構優化級別並覆蓋它?覆蓋GCC編譯標誌
例如的./configure & 使將檢測到現代的CPU與SSE例如,我想重寫,並設置:當GCC編譯一個.cpp文件,它總是使用-march = i586
這可能嗎?謝謝!
的./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
每個配置腳本中是不同的,沒有靈丹妙藥。如果您想要可靠地覆蓋gcc編譯器標誌,請爲/ usr/bin/gcc創建一個包裝腳本並添加/修改所需的標誌,並將腳本放在PATH的開頭。
您可以使用導出CC & CXX指向您的gcc包裝腳本,但我已經看到腳本對'if CC =='gcc「'作出斷言,這會斷裂。
謝謝。我正在尋找更全球化的方法。構建服務器需要重建一個包含大量模塊(> 30)的大型倉庫,我最多不想改變每一步......而是在** - march = i586 **處強制** gcc **。 ..如果可能的話。有時使用** cmake **而不是配置 – Hhut
實際上,您可以更具體地瞭解您的任務嗎?這聽起來像你正在寫一個數據包管理器。你確定你想要這樣的優化嗎? – Maquefel
我檢出一個包含多個模塊的中間件存儲庫,我做一個* make all *,然後得到一箇中間件lib/include包,其中包含可用於(相關)項目的所有中間件。但是現在,目標平臺已經發生了變化,所有事情都需要用** - march = i586 **來構建。我很想覆蓋所有進一步的gcc/g ++調用使用** - march = i586 ** – Hhut