2014-02-11 88 views
0

我在製作通過D2xx driver與FTDI設備進行通信的應用程序時遇到問題。在ftdi的網站上有一些針對Visual Studio的示例項目。但是QtCreator沒有。我選擇QtCreator作爲C++ IDE,因爲我的應用程序需要Qt框架。 我把ftd2xx.h和ftd2xx.lib放在Qt項目目錄下。如何在QtCreator上使用FTD2xx庫(使用MSVC2012編譯器)

(ftd2xx.lib是靜態庫,它原本位於[下載文件夾] \ CDM v2.08.30爲Windows 8.1 \靜態\ I386)

當示例源代碼被編譯,我得到了以下錯誤信息。

當我使用.pro文件(1)時出現錯誤消息。

LNK1104: cannot open file 'ftd2xx.lib' 

當我使用.pro文件(2)時出現錯誤消息。

error: Assignment needs exactly one word on the left hand side. 

我應該如何糾正Qt項目設置以利用ftd2xx庫?

我的源代碼和.pro文件在這裏。

[main.cpp中]如果該複選框被NOT啓用

#include <QCoreApplication> 
#include <windows.h> 
#include "ftd2xx.h" 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 
    FT_HANDLE ftHandle; 
    FT_STATUS ftStatus; 
    ftStatus = FT_Open(0,&ftHandle); 

    return a.exec(); 
} 

[pro文件如果該複選框被啓用] ---(1)

#------------------------------------------------- 
# 
# Project created by QtCreator 2014-02-11T18:51:08 
# 
#------------------------------------------------- 

QT  += core 

QT  -= gui 

TARGET = D2XXtest 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 
HEADERS += ftd2xx.h 

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/ -lftd2xx 
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/ -lftd2xxd 

INCLUDEPATH += $$PWD/ 
DEPENDPATH += $$PWD/ 

win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/libftd2xx.a 
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/libftd2xxd.a 
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/ftd2xx.lib 
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/ftd2xxd.lib 

[pro文件] ---(2)

#------------------------------------------------- 
# 
# Project created by QtCreator 2014-02-11T18:51:08 
# 
#------------------------------------------------- 

QT  += core 

QT  -= gui 

TARGET = D2XXtest 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 
HEADERS += ftd2xx.h 

win32: LIBS += -L$$PWD/ -lftd2xx 

INCLUDEPATH += $$PWD/ 
DEPENDPATH += $$PWD/ 

win32:!win32-g++ PRE_TARGETDEPS += $$PWD/ftd2xx.lib 
else:win32-g++: PRE_TARGETDEPS += $$PWD/libftd2xx.a 

任何幫助,將不勝感激。提前致謝。

[注]

操作系統:Windows 8.1

IDE:Qt創建者3.0.0

編譯器:MSVC2012(32位)

目標設備:ft232hl

[附加說明]

「添加庫」的配置如下。 如果我選中複選框「添加‘d’後綴的調試版本,然後我得到了LNK1104錯誤信息。否則,我得到了不同的錯誤信息。

enter image description here

回答

1

我的直覺是,你已經做出了錯字在您的錯誤消息,真正的錯誤消息的內容如下:?

LNK1104: cannot open file 'ftd2xxd.lib' 

請參閱d有它不屬於,有沒有ftd2xxd.lib您需要更改到ftd2xxd.lib任何引用回ftd2xx.lib,再 - 運行qmake,和你應該全部設置。否則你的.pro文件似乎是正確的。

編輯完成後,您給「。複選框啓用」一個.pro文件。這肯定是不正確的,因爲你顯示的內容意味着複選框是已禁用,而不是已啓用。

無論如何,我們不關心對話框設置是什麼。只需顯示您真正使用的實際.pro文件,因爲到目前爲止,我不知道您使用的是哪一個文件,並且我不知道在.pro文件更改後是否重新運行qmake。

您確定ftd2xx.lib文件實際上位於.pro文件所在的文件夾中嗎?

+0

謝謝您的回覆。我不會輸錯,錯誤信息與我之前引用的相同。我通過添加附加註釋來解釋文件名稱爲ftd2xxd的原因。 –

+0

對不起,我的評論令人困惑。請讓我正確地寫下我寫的內容。第二個.pro文件在複選框被禁用時生成。我其實都試過兩個.pro文件。正如我前面提到的,我分別得到了不同的錯誤信息。我把ftd2xx.lib文件放到包含.pro文件和源代碼的目錄中(main.cpp,ftd2xx.h) –

+0

讓我向你道歉。你的直覺是對的。刪除由QtCreator自動生成的build-xxxx文件夾後,錯誤信息發生如下變化(此時我使用.pro文件(1))錯誤:[dependent'C:\ Users \ ****** \工作區\ QtCreator_work \ D2XXtest \ ftd2xxd.lib'不存在。]我認爲複選框「添加」d「後綴調試版應該關閉。是不是? –

相關問題