Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Qt Creator包含.dll_Qt_Dll - Fatal编程技术网

如何使用Qt Creator包含.dll

如何使用Qt Creator包含.dll,qt,dll,Qt,Dll,我已经按照中描述的步骤进行了操作 但是,不知何故,我仍然得到未定义的引用错误 这就是我所做的: 通过INCLUDEPATH将库文件夹路径添加到my.pro文件+= 通过LIBS将.dll添加到我的.pro文件中+= 通过#include在我的代码中包含.dll(在我的例子中是“okFrontPanelDLL.h”) 我不知道这是否重要,但我的图书馆来自: 提取的文件夹包含一个.dll和多个源文件和头文件(我是否必须通过sources+=和headers+=?)从库中添加所有源文件和头文件) 目前

我已经按照中描述的步骤进行了操作 但是,不知何故,我仍然得到未定义的引用错误

这就是我所做的:

  • 通过INCLUDEPATH将库文件夹路径添加到my.pro文件+=
  • 通过LIBS将.dll添加到我的.pro文件中+=
  • 通过#include在我的代码中包含.dll(在我的例子中是“okFrontPanelDLL.h”)
  • 我不知道这是否重要,但我的图书馆来自: 提取的文件夹包含一个.dll和多个源文件和头文件(我是否必须通过sources+=和headers+=?)从库中添加所有源文件和头文件)

    目前,我可以根据库中定义的类声明变量

    okCFrontPanel *dev;
    
    但是访问为类定义的函数,例如调用构造函数

    dev = new okCFrontPanel;
    
    导致未定义的引用错误

    编辑:我尝试直接将库中的源文件和头文件添加到我的Sources文件夹中,而不是链接库,代码运行良好,因此(可能)我尝试使用库的功能至少没有问题

    编辑2:进一步信息:

    操作系统:Win7 64位

    Qt版本:5.9.0

    编译器:MinGW 32位

    文件位置:/[PROJECT FOLDER]/mylibrary

    #include <QCoreApplication>
    #include "myLibrary/okFrontPanelDLL.h"
    
    int main(int argc, char *argv[])
    {
    //    QCoreApplication a(argc, argv);
    
    //    return a.exec();
    
        printf("hello world\n");
    
    
        okCFrontPanel *dev;
        dev = new okCFrontPanel;
    //    dev->BoardModel;
        // If only one Opal Kelly board is plugged in to the host computer, we can use this.
        dev->OpenBySerial();
        // Set XEM6010 PLL to default configuration to produce 100 MHz FPGA clock.
        dev->LoadDefaultPLLConfiguration();
        // Upload RhythmStim bitfile which is compiled from RhythmStim Verilog code.
        dev->ConfigureFPGA("mylibrary/main.bit");
    
        printf("omg dis is working\n");
    }
    
    #包括
    #包括“myLibrary/okFrontPanelDLL.h”
    int main(int argc,char*argv[])
    {
    //qcorea应用程序(argc、argv);
    //返回a.exec();
    printf(“hello world\n”);
    okCFrontPanel*开发;
    dev=新的OKCfront面板;
    //开发模式;
    //如果只有一块蛋白石方钻杆板插入主机,我们可以使用它。
    dev->OpenBySerial();
    //将XEM6010 PLL设置为默认配置,以产生100 MHz FPGA时钟。
    dev->LoadDefaultPLLConfiguration();
    //上传由RthmathStim Verilog代码编译的RthmathStim位文件。
    dev->ConfigureFPGA(“mylibrary/main.bit”);
    printf(“omg dis正在工作\n”);
    }
    
    将库添加到项目文件后是否运行了qmake?谢谢您的建议。我只是尝试了一下,但没有任何帮助(我通过临时添加一个不存在的.dll文件来确保重新读取.pro文件,以查看是否有错误)。我不知道您在Qt方面的经验如何,所以我会提出不同的要求。您是否选择了build->run qmake in QtCreator并将您的项目作为活动项目,然后尝试构建?是的,这正是我所做的(但正如您正确猜测的那样,我是一名Qt新手,尽管我很久以前就使用过它)。下一步:您是否可以更新您的帖子,提供以下信息:-您使用的是什么Qt版本-在什么操作系统上-使用什么构建工具(如果是Windows,例如MSVC或MinGW)-您为添加库而编写的确切代码,以及库文件在您的PC上的位置。您是否尝试使用QtCreator向导添加库?(右键单击QtCreator中的项目文件夹并选择“添加库”?是否在将库添加到项目文件后运行qmake?谢谢您的建议。我刚刚尝试过,但没有任何帮助(我通过临时添加一个不存在的.dll文件以查看是否出现错误来确保重新读取.pro文件)。我不知道你在Qt方面有多丰富的经验,所以我会提出不同的问题。你是否选择了build->run qmake-in-QtCreator并将你的项目作为活动项目,然后尝试进行构建?是的,这正是我所做的(但正如你正确猜到的,我是一名Qt新手,尽管我很久以前就使用过它)。下一步:您是否可以更新您的帖子,提供以下信息:-您使用的是什么Qt版本-在什么操作系统上-使用什么构建工具(如果是Windows,例如MSVC或MinGW)-您为添加库而编写的确切代码,以及库文件在您的PC上的位置。您是否尝试使用QtCreator向导添加库?(右键单击QtCreator中的项目文件夹,然后选择添加库?