我在制作一个通过D2xx driver与FTDI设备通信的应用程序时遇到了麻烦。ftdi网站上有一些Visual Studio的示例项目。但是QtCreator没有。我选择QtCreator作为c ++ IDE,因为我的应用程序需要Qt框架。
我将ftd2xx.h和ftd2xx.lib放在Qt项目目录中。
(ftd2xx.lib是静态库,最初位于Windows 8.1 \ Static \ i386的[下载文件夹] \ CDM v2.08.30中)
编译示例源代码时,出现以下错误消息。
当我使用.pro file(1)时出现错误消息。
LNK1104: cannot open file 'ftd2xx.lib'
当我使用.pro file(2)时出现错误消息。
error: Assignment needs exactly one word on the left hand side.
为了利用ftd2xx库,我应该如何纠正Qt项目设置?
我的源代码和.pro文件在这里。
[main.cpp]
#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 Creator 3.0.0
编译器:MSVC2012(32bit)
目标设备:ft232hl
[附加说明]
以下是“添加库”的配置。
如果启用复选框“为调试版本添加“ d”后缀,则收到有关LNK1104的错误消息。否则,收到不同的错误消息。
最佳答案
我的直觉是您在错误消息中打了错字,真正的错误消息如下:
LNK1104: cannot open file 'ftd2xxd.lib'
在那看到
d
吗?它不属于,没有ftd2xxd.lib
。您需要将对ftd2xxd.lib
的所有引用更改回ftd2xx.lib
,重新运行qmake,然后就已经准备就绪。否则,您的.pro文件似乎正确。编辑后,您给了一个带有“复选框已启用”的.pro文件。这肯定不是真的,因为您显示的内容暗示该复选框处于禁用状态,而不是启用状态。
无论如何,我们不在乎对话框的设置是什么。只显示您真正使用的实际
.pro
文件,因为到目前为止我不知道您使用的是哪个文件,而且我不知道您在更改.pro
文件后是否重新运行了qmake。您确定
ftd2xx.lib
文件实际上与.pro
文件位于同一文件夹中吗?关于c++ - 如何在QtCreator上使用FTD2xx库(与MSVC2012编译器一起使用),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21701901/