2013-10-15 130 views
0

在我們的項目中,我們有一個基於Qt的動態庫,它包含許多用於不同字段的輔助函數:sql,network,gui,xml處理等。在構建lib時,其他幾個標準庫,如QtCore,QtGui,QtSql等。運行時庫依賴關係

我想構建一個簡單的應用程序,它使用了庫中的一些函數。我在Windows上使用MinGW構建我的應用程序。

我不明白爲什麼我的應用程序在運行時需要我們的lib鏈接到的所有庫。我的意思是我的應用程序不使用任何SQL的東西,但仍然需要QtSql。

讓我們假設我只需要使用一個函數進行xml處理。我想要這個配置:我的應用程序+我們的lib + QtXml。可能嗎?我不想運送一些我不使用的圖書館。

回答

2

只要你鏈接到QtSQL,庫將被加載,無論你是否使用它,因爲你的lib中的一個函數依賴於它。如果你只想加載一些庫,你可以拆分自己的庫,或使用dlopen和朋友爲Qt庫。

+0

在Windows上,這將是'LoadLibrary'和朋友';-)' – rubenvb