2011-05-23 96 views
6

我需要一個非常簡單的機制,在我的應用程序中,我的項目是作爲共享庫'.so'或'.dll'構建的,但我想要的是:qmake:構建沒有符號鏈接和'lib'前綴的庫

ExampleAppOne.so 

我得到:

libExampleAppOne.so -> libExampleAppOne.so.1.0.0 
libExampleAppOne.so.1 -> libExampleAppOne.so.1.0.0 
libExampleAppOne.so.1.0 -> libExampleAppOne.so.1.0.0 

我甚至不希望 'LIB' 前綴。在.pro文件中,我所能做的就是更改INSTALLS變量(這是因爲我的第三個要求是將庫構建在特定的目錄中)。

此外,我有第四個相關的要求:當我要求QLibrary加載庫時,我希望它專門搜索一個非常特定的路徑中的庫和匹配給它的EXACT名稱的庫。沒有'lib'前綴匹配,沒有'版本字符串'搜索,沒有看着LD_LIBRARY_PATH ...

任何幫助表示讚賞。

問候, 羅漢

+0

好的,找到了第四個要求的解決方案。我必須簡單地提供一個「絕對路徑」,以便它不會到處尋找圖書館的其他地方。 來源:QL文檔QLibrary – 2011-05-23 18:27:59

+0

你可以發佈makefile嗎? – Abhijith 2011-05-23 18:40:48

回答

1

添加pluginCONFIG變量應該禁用版本控制和符號鏈接庫的生成。

雖然我不知道一個簡單的方法來禁用lib前綴。您可以深入瞭解提供的QMake規範文件,以瞭解默認處理是如何實現的。

+2

也做'CONFIG + = no_plugin_name_prefix'(from [here](http://lists.qt-project.org/pipermail/interest/2012-June/002798.html))。如果你建立一個Python擴展並且你想強制擴展'.so',你還需要(Mac/Win)'QMAKE_EXTENSION_SHLIB = so'。 – Albert 2014-01-31 13:42:26