Moin,
ich hab die Library jetzt soweit zum Laufen!
Zum kompilieren verwende ich jetzt CMake und den aktuellen Visual Studio Compiler, das läuft jetzt problemlos durch.
Ich kann die Library sowohl unter Visual Studio (Microsoft Visual Studio Community 2022 (64-Bit) - Version 17.2.6) als auch unter Visual Studio Code kompilieren.
Der nächste Schritt wäre jetzt die Einbindung der Library in eine GUI Umgebung.
Da ich schonmal was mit Qt gemacht habe wollte ich Qt als GUI nutzen.
Das Qt-Framework ist installiert und ein einfaches HelloWorld-Widget läuft auch.
Jetzt stecke ich wieder fest....
Wie binde ich die Library in mein HelloWorld-Widget ein?
Ich habe dafür gesorgt, dass der Header der Library und alle zugehörigen Bestandteile der Library gefunden werden.
Dieses Beispiel, mit auskommentierten Code, aber mit eingebundenem Header "iec61850_client.h" läuft durch.
Code: Alles auswählen
#include "QtWidgetsApplication1.h"
#include <QString>
#include <QMessageBox>
#include "iec61850_client.h"
QtWidgetsApplication1::QtWidgetsApplication1(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
QtWidgetsApplication1::~QtWidgetsApplication1()
{
}
void QtWidgetsApplication1::on_pushButton_clicked()
{
QString txt = "HelloWorld!";
/*
IedClientError error;
IedConnection con = IedConnection_create();
IedConnection_connect(con, &error, "localhost", 102);
if (error == IED_ERROR_OK) {
txt = "connected";
IedConnection_close(con);
}
else {
txt = "failed to connect";
}
IedConnection_destroy(con);
*/
QMessageBox::about(this, "Title", txt);
}
Mit aktiven Funktionen z. B. "IedConnection con = IedConnection_create();" erhalte ich folgende Fehlermeldungen:
Code: Alles auswählen
Erstellen gestartet...
1>------ Erstellen gestartet: Projekt: QtWidgetsApplication1, Konfiguration: Debug x64 ------
1>QtWidgetsApplication1.cpp
1>QtWidgetsApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "IedConnection_create" in Funktion ""private: void __cdecl QtWidgetsApplication1::on_pushButton_clicked(void)" (?on_pushButton_clicked@QtWidgetsApplication1@@AEAAXXZ)".
1>QtWidgetsApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "IedConnection_destroy" in Funktion ""private: void __cdecl QtWidgetsApplication1::on_pushButton_clicked(void)" (?on_pushButton_clicked@QtWidgetsApplication1@@AEAAXXZ)".
1>QtWidgetsApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "IedConnection_connect" in Funktion ""private: void __cdecl QtWidgetsApplication1::on_pushButton_clicked(void)" (?on_pushButton_clicked@QtWidgetsApplication1@@AEAAXXZ)".
1>QtWidgetsApplication1.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "IedConnection_close" in Funktion ""private: void __cdecl QtWidgetsApplication1::on_pushButton_clicked(void)" (?on_pushButton_clicked@QtWidgetsApplication1@@AEAAXXZ)".
1>C:\TEMP\Code\QtWidgetsApplication1\x64\Debug\QtWidgetsApplication1.exe : fatal error LNK1120: 4 nicht aufgelöste Externe
1>Die Erstellung des Projekts "QtWidgetsApplication1.vcxproj" ist abgeschlossen -- FEHLER.
========== Erstellen: 0 erfolgreich, 1 Fehler, 0 aktuell, 0 übersprungen ==========
Hier bin ich wieder mit meinem Latein am Ende.....
Hat hier jemand Lust mir unter die Arme zu greifen?
Gruß
Pf@nne
EDIT:
Die Library kompiliere ich mit CMake, das Qt-Widget mit dem lokalen Debugger (grüne play Button).
Wie kann ich das Qt-Widget ebenfalls mit CMake kompilieren?