2014-12-02 48 views
1

給定一個使用GNU自動工具的C++程序,使用-flto(鏈接時間優化)編譯它最簡單的方法是什麼?我的理解是,在Unix上習慣使用這種優化標誌由用戶或打包程序指定,而不是由程序員指定。在自動工具中使用-flto

回答

3

this post-flto標誌需要作爲編譯標誌,並作爲一個鏈接器標誌傳遞,所以:

./configure CXXFLAGS="-flto" LDFLAGS="-flto" ... 

或可能:

./configure CXXFLAGS="-flto" LDFLAGS="-Wc,-flto" ... 

可能會奏效。

+2

或者'./configure CXX ='g ++ -flto -O2''因爲*優化*應該*相同*在*編譯*和*鏈接*時間 – 2014-12-03 05:42:39

+0

這很有效,謝謝!實際上,'CXXFLAGS =' - O3 -flto'似乎就夠了。 – rwallace 2014-12-04 11:41:51

+0

幸運的是,它是那麼簡單!我需要添加一堆其他東西,正如這個答案所示:http://stackoverflow.com/questions/25878407/how-can-i-use-lto-with-static-libraries#comment67660913_25878408最後的配置命令是這個:'./configure --prefix =/opt/testmake AR = gcc-ar RANLIB = gcc-ranlib CXXFLAGS =' - O3 -flto'' – 2016-10-22 22:12:54