2013-12-22 86 views
1

現在Qt在我的項目中每.cpp文件生成一個.o文件。我可以強制它只生成一個巨大的.o文件嗎?或者我可以使用一些utils在一個文件中轉換多個.o文件?Qt 5.2.0生成單個.o文件

EDIT1: 爲什麼我這樣做的原因是因爲我想編一個勁兒地exe文件(沒有的DLL),但LGPL 要求靜態鏈接程序必須提供與它的目標文件。在這裏(https://stackoverflow.com/a/17736670/1389883)寫道,我只能提供一個巨大的對象文件。

+0

不要以爲這是可能的。但也許你可以解釋想要這樣做的原因。通常,創建靜態庫時將對象打包在一起。 – Pat

+0

這不就是一個優化標誌嗎? – lpapp

+0

我不知道。哪一個? – iamnp

回答

1

你的問題不清楚你正在使用哪個工具鏈,所以我會假設你需要一個跨平臺的解決方案,而不是一個具體的解決方案。

我認爲你正在尋找我們在KDE中使用過的東西,它是KDE4_ENABLE_FINAL。如果您希望擁有一個目標文件,它將減少鏈接時間,但另一方面,它肯定會使用更多的內存。

你可以檢查下面如何處理cmake變量。它基本上只是將源文件連接在一起成爲一個編譯單元。這是因爲沒有這樣的直接選擇潛在的工具鏈。

+0

是gcc還是ld的選項?你能提供鏈接嗎? – sim

+0

@sim:不,它不是。這是工具鏈之上的一個技巧。請注意,OP沒有提到gcc。 – lpapp

相關問題