現在Qt在我的項目中每.cpp
文件生成一個.o
文件。我可以強制它只生成一個巨大的.o
文件嗎?或者我可以使用一些utils在一個文件中轉換多個.o
文件?Qt 5.2.0生成單個.o文件
EDIT1: 爲什麼我這樣做的原因是因爲我想編一個勁兒地exe文件(沒有的DLL),但LGPL 要求靜態鏈接程序必須提供與它的目標文件。在這裏(https://stackoverflow.com/a/17736670/1389883)寫道,我只能提供一個巨大的對象文件。
現在Qt在我的項目中每.cpp
文件生成一個.o
文件。我可以強制它只生成一個巨大的.o
文件嗎?或者我可以使用一些utils在一個文件中轉換多個.o
文件?Qt 5.2.0生成單個.o文件
EDIT1: 爲什麼我這樣做的原因是因爲我想編一個勁兒地exe文件(沒有的DLL),但LGPL 要求靜態鏈接程序必須提供與它的目標文件。在這裏(https://stackoverflow.com/a/17736670/1389883)寫道,我只能提供一個巨大的對象文件。
你的問題不清楚你正在使用哪個工具鏈,所以我會假設你需要一個跨平臺的解決方案,而不是一個具體的解決方案。
我認爲你正在尋找我們在KDE中使用過的東西,它是KDE4_ENABLE_FINAL。如果您希望擁有一個目標文件,它將減少鏈接時間,但另一方面,它肯定會使用更多的內存。
你可以檢查下面如何處理cmake變量。它基本上只是將源文件連接在一起成爲一個編譯單元。這是因爲沒有這樣的直接選擇潛在的工具鏈。
不要以爲這是可能的。但也許你可以解釋想要這樣做的原因。通常,創建靜態庫時將對象打包在一起。 – Pat
這不就是一個優化標誌嗎? – lpapp
我不知道。哪一個? – iamnp