2012-01-07 52 views
0

我在x64機器上運行x86內核。我想爲i586處理器編譯庫。在編譯期間,一些庫使用i686優化,因此即使它們在makefile中顯式聲明瞭其他內容,也要爲所有庫設置-mtunes=i586,-march=i586-O3標誌。永久設置gcc和g ++優化標記

不知怎的,我要永久設置編譯器標誌...

+0

這聽起來不像是一件非常好的事情......如果makefile顯式指定特定的標誌,那可能是有原因的。 – 2012-01-07 18:40:02

+0

如果Makefiles試圖將'-O3'改爲'-O2',你想要做什麼?因爲代碼只是簡單的不能用於'-O3'? – hvd 2012-01-07 18:41:29

+0

@OliCharlesworth:我正在爲rb-110 x86嵌入式板編譯openCV。在micro-SD卡上安裝debian,我在PC上運行它。但編譯時,二進制文件是i686。我正在尋找一種方法來強制他們成爲i586,並且當然會進行優化。 – 2012-01-07 18:42:52

回答

2

不管你應該做到這一點,這裏是做最簡單的方法:

  1. 創建一個新的文件內容如下:

    #!/bin/sh 
    
    exec /usr/bin/gcc "[email protected]" -O3 -mtunes=i586 -march=i586 
    

    變化的/ usr/bin中/海灣合作委員會,以實際的編譯器,如果這是不對的你的系統。

  2. 另存爲~/bin/gcc

  3. 使新的腳本執行:

    使用chmod + x〜/斌/ GCC

  4. 重複創建對於G另一個文件++。

  5. 添加~/bin到您的路徑的開始

    export PATH=~/bin:$PATH 
    
  6. 編譯您的項目。只要你的新腳本在路徑上,它們就會覆蓋makefile所說的任何東西。

希望有所幫助。

P.S.編譯器的「specs」文件可能會混淆(而不是最簡單的),但解釋和執行起來要困難得多。