0
我在x64機器上運行x86內核。我想爲i586處理器編譯庫。在編譯期間,一些庫使用i686優化,因此即使它們在makefile中顯式聲明瞭其他內容,也要爲所有庫設置-mtunes=i586
,-march=i586
和-O3
標誌。永久設置gcc和g ++優化標記
不知怎的,我要永久設置編譯器標誌...
我在x64機器上運行x86內核。我想爲i586處理器編譯庫。在編譯期間,一些庫使用i686優化,因此即使它們在makefile中顯式聲明瞭其他內容,也要爲所有庫設置-mtunes=i586
,-march=i586
和-O3
標誌。永久設置gcc和g ++優化標記
不知怎的,我要永久設置編譯器標誌...
不管你應該做到這一點,這裏是做最簡單的方法:
創建一個新的文件內容如下:
#!/bin/sh
exec /usr/bin/gcc "[email protected]" -O3 -mtunes=i586 -march=i586
變化的/ usr/bin中/海灣合作委員會,以實際的編譯器,如果這是不對的你的系統。
另存爲~/bin/gcc
。
使新的腳本執行:
使用chmod + x〜/斌/ GCC
重複創建對於G另一個文件++。
添加~/bin
到您的路徑的開始:
export PATH=~/bin:$PATH
編譯您的項目。只要你的新腳本在路徑上,它們就會覆蓋makefile所說的任何東西。
希望有所幫助。
P.S.編譯器的「specs」文件可能會混淆(而不是最簡單的),但解釋和執行起來要困難得多。
這聽起來不像是一件非常好的事情......如果makefile顯式指定特定的標誌,那可能是有原因的。 – 2012-01-07 18:40:02
如果Makefiles試圖將'-O3'改爲'-O2',你想要做什麼?因爲代碼只是簡單的不能用於'-O3'? – hvd 2012-01-07 18:41:29
@OliCharlesworth:我正在爲rb-110 x86嵌入式板編譯openCV。在micro-SD卡上安裝debian,我在PC上運行它。但編譯時,二進制文件是i686。我正在尋找一種方法來強制他們成爲i586,並且當然會進行優化。 – 2012-01-07 18:42:52