2015-04-08 55 views
2

我有一個C++程序,可以在各種Linux體系結構和平臺上編譯。奇怪的是,編譯後的二進制文件在Ubuntu(32位和64位)上大約爲5MB,而在Red Hat上則爲20MB(32位和64位)。爲什麼RH編譯的程序是Ubuntu編譯程序的4倍大小

這是一個很重要的C++ Qt5程序。有人可以解釋爲什麼大尺寸差異? Ubuntu是否帶有可能需要使用Red Hat編譯的Qt庫?

回答

2

聽起來像紅帽子上你可能靜態地鏈接QT和你動態鏈接的Ubuntu。在特定平臺上可用的庫類型會有所不同,這並不令人難以置信。

+0

我使用完全相同的.pro文件,所以我認爲它們應該構建相同。 qmake是否檢測到Linux發行版並決定在Ubuntu中默認包含Qt庫? – TSG

+0

@GenerationDSystems不,它取決於何種類型的庫文件(動態'.so'或靜態'.a')在鏈接時找到和/或首選。 – unwind

+0

我還是新來的,所以原諒我,如果這是愚蠢的,但是...如果我使用相同的.pro文件應鏈接時使用相同的.so或.a選項?或者,qmake是否根據分配做出決定? – TSG