2013-03-20 85 views
4

我想爲我的項目製作一個庫。 (Qt5,Qt Creator,VS2010編譯器)在Qt5中創建靜態庫並使用它

我從最小的測試樣本開始檢查它的工作方式。

1 - 我已經包含一類具有一個方法庫

2-I編譯,並得到DLL和LIB文件

3-在主aplication我添加此lib和其路徑.pro併成功測試了庫。

現在,我想擺脫DLL並使用lib文件作爲靜態庫。

,所以我說這行到我的圖書館.pro文件

CONFIG+=staticlib 

現在,我得到編譯後的庫文件,但我不能在我的項目中使用它,我也得到未解決的外部符號...錯誤

當我刪除CONFIG + = staticlib,它再次工作!但它不是靜態的。

這些是我加入的.pro主體工程加載/鏈接庫

INCLUDEPATH +="G:/TestLib/testLib" 
LIBS +=-l"G:/Build/debug/testLib" 

所以現在的問題是文件中的行:是否有可能有自己的靜態庫中的Qt(無商業執照)?

如果是,我的方法有什麼問題?

shoud我改變了一些在LIBS + = ...來指定它的靜態庫?

我已閱讀This Article,而且我的代碼似乎沒有任何問題。

請幫忙嗎?

編輯:問題解決
的問題是,我們並不需要Q_DECL_EXPORT和Q_DECL_IMPORT靜態庫! 這是粗略的虛幻文章中沒有明確提到的。

+0

也許你應該添加你的解決方案作爲答案並接受它? – aukaost 2013-03-20 12:12:06

回答

3

問題解決

的問題是,我們並不需要對靜態庫Q_DECL_EXPORTQ_DECL_IMPORT!這在粗略的虛幻文章中沒有明確提及。

Q_DECL_EXPORTQ_DECL_IMPORT是動態庫所必需的。