fatal error LNK1120: 2 unaufgelöste externe Verweise
-
Hallo.
ich hoffe ich bin hier richtig.
Also ich bin gerade dabei eine Log-Buch-klasse zu schreiben.
(ich hab die von Marcus Bäckmann genommen und abgeändert)
Aber es gibt ein Problem:
hier erst mal der code://log.h class UBIS_API uLog { public: uLog(); void trace(const string& line); }; #ifdef LOG_ENABLED #define ULOG(line) {uLog _ulog_;_ulog_.trace(line);}; #define ULOG_FLUSH() {uLog _ulog_;}; #else #define ULOG(line) ; #define ULOG_FLUSH() ; #endif
//log.cpp #include "Ubis.h"//in dieser datei sind alle includes drinne die ich brauche uLog::uLog() { fstream thefile("logfile.txt",ios::out | ios::trunc); } void uLog::trace(const std::string& line) { fstream thefile("logfile.txt",ios::out | ios::app); if(thefile.is_open()) { thefile<<line<<endl; } }
so diese funktion/klasse steht dann in einer dll
wenn ich nun in einem anderen projekt dies benutzen will spuckt mir der compiler(VC++.NET)
fehler aus:#define UBIS_EXPORTS #define LOG_ENABLED #include <Ubis.h> int main() { ULOG_FLUSH(); ULOG("test"); return 0; }
Fehler:
Bibliothek 'Debug/Ubistest.lib' und Objekt 'Debug/Ubistest.exp' wird erstellt m.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: void __thiscall uLog::trace(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?trace@uLog@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)', verwiesen in Funktion '_main' m.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall uLog::uLog(void)" (??0uLog@@QAE@XZ)', verwiesen in Funktion '_main' Debug/Ubistest.exe : fatal error LNK1120: 2 unaufgelöste externe Verweise
Woran kann das liegen?
-
du linkst halt die DLL nicht.
Ansonsten solltest du dir deine Macros nochmal angucken und wie sie expandiert werden!
-
was meinst du mit linken?
vorher ging es doch auch.
und was ist an den macros falsch?
vielen dank