VS2010 Compiler w. QT5
Geizhals » Forum » Programmierung » VS2010 Compiler w. QT5 (5 Beiträge, 318 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
VS2010 Compiler w. QT5
27.09.2013, 09:26:32
Hi!

Ich hab ein ganz seltsames Problem in Verbindung von QT5 (mit QT Creator) und VS2010.

Projekt via QT Creator erstellt, hat alle Komponenten erkannt und die erstellte Oberfläche funktioniert einwandfrei. Ich habe mir eine Klasse erstellt die für mich die Settings abarbeiten soll, diese Klasse soll als Singleton-Object während der RT zur Verfügung stehen, die Implementation hab ich so vorgenommen:


#ifndef SETTINGS_H
#define SETTINGS_H

#include <QSettings>

class NVSettings
{
private:
    NVSettings();

private:
    static NVSettings *singletonObj;
    QSettings *m_pSettings;

public:
    static NVSettings *getSingletonPtr (void);
    static void release (void);
    ~NVSettings();
};

#endif // SETTINGS_H



#include "settings.h"

NVSettings* NVSettings::singletonObj = NULL;

NVSettings::NVSettings() : m_pSettings(NULL) {
}

NVSettings::~NVSettings() {
    if (m_pSettings)
        delete m_pSettings;
}

NVSettings* NVSettings::getSingletonPtr() {
    if (!singletonObj)
        singletonObj = new Settings();

    return (singletonObj);
}

void NVSettings::release() {
    if (singletonObj)
        delete singletonObj;
    singletonObj = NULL;
}


Mein Problem ist jetzt folgendes: Compilier ich das direkt in der IDE von VS2010 klappts einwandfrei, 1-2 Intellisense Warnings sind da - aber es compiled.

Unter QT Creator (der VS2010 als Compiler nutzt) bekomme ich folgende Fehler während des Linkens:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: static class NVSettings * __cdecl NVSettings::getSingletonPtr(void)" (?getSingletonPtr@NVSettings@@SAPAV1@XZ) referenced in function "public: __thiscall MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QAE@PAVQWidget@@@Z)

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "public: static void __cdecl NVSettings::release(void)" (?release@NVSettings@@SAXXZ) referenced in function "public: virtual __thiscall MainWindow::~MainWindow(void)" (??1MainWindow@@UAE@XZ)

Meiner Meinung nach ist der Code sauber - ich wüßte jetzt auch nicht wie ich anders statische Funktionen in eine Klasse implementiere...

Würde mich über jeden Tip freuen.

lg.


"Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer
Antworten PM Alle Chronologisch
 
Melden nicht möglich
.  Re: VS2010 Compiler w. QT5  ([DUCK]Butcher am 27.09.2013, 21:57:59)
..  Re(2): VS2010 Compiler w. QT5  (A national Acrobat am 28.09.2013, 22:41:34)
...  Re(3): VS2010 Compiler w. QT5  (kombipaket am 15.10.2013, 20:42:58)
....  Re(4): VS2010 Compiler w. QT5  (A national Acrobat am 15.10.2013, 21:34:24)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung