1
給定一個使用GNU自動工具的C++程序,使用-flto
(鏈接時間優化)編譯它最簡單的方法是什麼?我的理解是,在Unix上習慣使用這種優化標誌由用戶或打包程序指定,而不是由程序員指定。在自動工具中使用-flto
給定一個使用GNU自動工具的C++程序,使用-flto
(鏈接時間優化)編譯它最簡單的方法是什麼?我的理解是,在Unix上習慣使用這種優化標誌由用戶或打包程序指定,而不是由程序員指定。在自動工具中使用-flto
據this post的-flto
標誌需要作爲編譯標誌,並作爲一個鏈接器標誌傳遞,所以:
./configure CXXFLAGS="-flto" LDFLAGS="-flto" ...
或可能:
./configure CXXFLAGS="-flto" LDFLAGS="-Wc,-flto" ...
可能會奏效。
或者'./configure CXX ='g ++ -flto -O2''因爲*優化*應該*相同*在*編譯*和*鏈接*時間 – 2014-12-03 05:42:39
這很有效,謝謝!實際上,'CXXFLAGS =' - O3 -flto'似乎就夠了。 – rwallace 2014-12-04 11:41:51
幸運的是,它是那麼簡單!我需要添加一堆其他東西,正如這個答案所示: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