如何使用Qt Creator包含.dll

时间:2017-04-12 12:34:09

标签: qt dll

我已按照https://wiki.qt.io/How_to_link_to_a_dll中描述的步骤进行操作 但是,不知怎的,我仍然得到未定义的引用错误。

这就是我所做的:

  1. 通过INCLUDEPATH + =
  2. 将库文件夹路径添加到我的.pro文件中
  3. 通过LIBS + =
  4. 将.dll添加到我的.pro文件中
  5. 在我的代码中通过#include包含.dll(在我的情况下" okFrontPanelDLL.h")
  6. 我不知道这是否重要,但我的图书馆来自:http://intantech.com/files/RhythmStim_API_Release_170328.zip 并且解压缩的文件夹包含单个.dll和多个源文件和头文件(我是否必须通过SOURCES + =和HEADERS + =?添加库中的所有源和标题。)

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

    okCFrontPanel *dev;
    

    但访问为类定义的函数,例如像

    一样调用构造函数
    dev = new okCFrontPanel;
    

    导致未定义的引用错误。

    编辑:我尝试直接将库中的源文件和头文件添加到我的Sources文件夹而不是链接库和代码工作正常,所以(可能)至少我没有尝试使用图书馆的功能。

    edit2:进一步的信息:

    OS:Win 7 64位

    Qt版本:5.9.0

    编译器:MinGW 32bit

    文件位置:/ [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");
    }
    

0 个答案:

没有答案