gpt4 book ai didi

c++ - 在 Qt C++ 中使用 Dll

转载 作者:行者123 更新时间:2023-11-28 08:19:23 26 4
gpt4 key购买 nike

我正在尝试使用我创建的库 (dll) 构建一个项目。我以前从未尝试过加载或创建库,但出现以下错误。

错误:对`imp__ZN6NeuronC1Ev' 的 undefined reference

在 Qt 中,错误显示在以下行中。

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) <--------------------------- Error indicated here.
{
ui->setupUi(this);
}

项目文件

QT       += core gui

TARGET = Jane
TEMPLATE = app
LIBS += -L quote(C:\Programming\Jane\Jane\Source\Neuron.dll)

SOURCES += main.cpp\
MainWindow.cpp

HEADERS += MainWindow.h

FORMS += MainWindow.ui

这是我导出的类之一

#ifndef NEURON_H
#define NEURON_H

#include <QList>
#include "Neuron_global.h"
#include <Sensor.h>

class NEURONSHARED_EXPORT Neuron
{
public:
explicit Neuron();

const double getOutput() const;
const double & getWeight() const;

void setWeight(const double& weight);
private:
double weight; // The weight of this neuron.

QList<Neuron*> neurons; // This Neuron's children.
QList<Sensor*> sensors; // This Neuron's Sensors.
};

#endif // NEURON_H

NEURONSHARED_EXPORT 宏在“Neuron_global.h”中定义

#ifndef NEURON_GLOBAL_H
#define NEURON_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(NEURON_LIBRARY)
# define NEURONSHARED_EXPORT Q_DECL_EXPORT
#else
# define NEURONSHARED_EXPORT Q_DECL_IMPORT
#endif

#endif // NEURON_GLOBAL_H

如果有人对如何解决此问题有任何建议,我将不胜感激。

编辑:我已将 libNeuron.a 文件添加到 pro 文件中的 LIBS 参数中。但是,我现在收到以下错误。

LIBS += libNeuron.a

找不到-lNeuron.a

有什么想法吗?

最佳答案

你想做什么?

LIBS += -L quote(C:\Programming\Jane\Jane\Source\Neuron.dll)

它变量包含一个 lib 文件,将链接到哪个项目,而不是库本身!

您应该为 dll 找到一个库或使用 WINAPI LoadLibrary/GetProcAddres 函数动态加载 dll。

关于c++ - 在 Qt C++ 中使用 Dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6510746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com