我已按照https://wiki.qt.io/How_to_link_to_a_dll中描述的步骤进行操作 但是,不知怎的,我仍然得到未定义的引用错误。
这就是我所做的:
我不知道这是否重要,但我的图书馆来自: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");
}