2010-11-30 114 views
0

我的項目出了問題。我正在Qt Creator上開發它,並且我需要將一個.lib文件添加到我的項目中。所以,我在.pro中寫下了這一行:如何動態地包含.lib文件?

LIBS += "C:\My_Path\My_Project\lib\file.lib" 

這工作正常。我唯一的問題是我需要將整個路徑寫入.lib文件。由於它是一個組合項目,因此需要在其他計算機上進行編譯,而不必每次都更改此文件的路徑。

我試過很多語法,如:

LIBS += -L"lib/" -l"file.lib" 

LIBS += "lib\file.lib" 

LIBS += "file.lib" 

(把.LIB文件在根和其添加到項目Qt Creator)

N其中一期工程:/

我也嘗試添加在QResource文件中的.lib文件,但語法像這樣的:

LIBS += ":/lib/file.lib" 

在.pro文件似乎並沒有工作.. 。

我現在運行的想法:(

請幫助:)

回答

1

好的,我發現瞭解決方案:

lib /目錄已被放置在相同的目錄中生成文件(真正的一個,而不是的.pro)。
因爲我複製了build/desktop /目錄下的lib /目錄,所有事情都可以正常使用相對路徑:)

0

從你的嘗試我猜你要鏈接到庫使用應該由DEF工作得很好,相對路徑奧爾特。

試試這個:

LIBS += -L$$relative/directory/path -llibname 

如果它不工作,那麼你可能想嘗試設置多個INCLUDEPATH。 :/

+0

那麼,我使用LIBS + = -L -l有什麼問題?我如何使用$$相對? – 2010-11-30 15:13:03

+0

整件事很奇怪,因爲即使沒有$$,它也應該可以工作,但它的確是非常有用的。 – Palmik 2010-11-30 15:56:35

1

你嘗試

LIBS += -Llib -lfile

LIBS += -L./lib -lfile

請記住,如果您未使用完整路徑,則不會將.lib添加到庫名稱中,也不會使用引號。如果路徑中有空格(或者你只是想爲了安全起見),使用$$quote(-L<path name>)

如前所述here了Unix風格的路徑在Windows上工作,以及您通常需要提供完整路徑。 qmake會爲你填寫。

我轉換

LIBS += ../../lib/phraseBox.lib

LIBS += $$quote(-L../../lib) -lphraseBox

LIBS += $$quote(-L../../lib) phraseBox.lib

在我的項目之一,W上沒有問題INDOWS。您可能想要將項目文件發佈到某處,或發佈實際的錯誤消息以縮小範圍。