1. Introdução ambiental
Sistema operacional: win10 64 bits
Versão QT: QT5.12.6
Compilador: MinGW 32 bits
Em segundo lugar, crie uma biblioteca dinâmica
2.1 Maneiras de criar uma biblioteca 1
O assistente de criação de projeto QtCreate tem uma opção de projeto para criar uma biblioteca. Após criar o projeto de acordo com o assistente, escreva o código, clique em "Pequeno Martelo" no canto esquerdo inferior de QtCreate , a compilação está concluída e arquivo de biblioteca pode ser gerado no diretório de construção.
2.2 Maneiras de criar uma biblioteca 2
Em circunstâncias normais, o projeto pode ter sido criado antes e as funções foram concluídas, e agora desejo gerar um arquivo de biblioteca para ser chamado por outros. Neste momento, só precisa modificar o arquivo de projeto xxx.pro.
Adicione as duas linhas de código a seguir ao arquivo de projeto original.
TEMPLATE = lib
DEFINES += DLL_CREATETEST_LIBRARY
Após a modificação, basta construir o projeto.
A biblioteca dinâmica desenvolvida e produzida no VS + QT pode ser configurada diretamente nas propriedades do projeto do VS:
Três, chame a biblioteca dinâmica
3.1 Crie um novo projeto e chame a biblioteca dll
3.2 Copiar arquivos de biblioteca e arquivos de cabeçalho
(1) Copie todos os arquivos de cabeçalho usados ao gerar a biblioteca (o projeto original) para o diretório do novo projeto (o projeto de teste que chama a biblioteca).
(2) Copie a biblioteca dinâmica dll gerada pelo projeto original para o diretório do novo projeto (o projeto de teste que chama a biblioteca).
(3) Modifique o arquivo de projeto xxx.pro
Adicione o código:
LIBS += $$PWD/DrawTimeLine.dll
(4). Modifique o código da função principal e chame a função de teste
#include <QApplication>
#include "widget.h"
#include "drawtimeline.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
3.3 Concluir o teste de chamada
Após a conclusão da compilação, você também precisa copiar os arquivos de biblioteca dinâmica usados para o diretório que acabou de criar. Caso contrário, o arquivo de biblioteca não pode ser encontrado durante o tempo de execução.