undefined reference to '...'
Ostatnio zmodyfikowano 2017-08-14 20:05
Rashmistrz Temat założony przez niniejszego użytkownika |
undefined reference to '...' » 2017-08-14 16:54:17 console.hpp: #include <curses.h> #include <string> using std::string;
class Console { private: Console(); ~Console(); static WINDOW * cmd; static WINDOW * con; typedef void( * handler )( string ); static handler command; public: static string set_prompt( string ); static Console & get() { static Console singleton; return singleton; } static void run( handler ); static void log( string ); static string ask( string ); static string ask_for_password( string ); };
console.cpp: #include "console.hpp"
Console::Console() { initscr(); cmd = newwin( 2 * LINES, COLS, - LINES - 1, 0 ); con = newwin( 1, COLS, LINES - 1, 0 ); wmove( cmd, 0, 0 ); wmove( con, 2 * LINES, 0 ); }
Console::~Console() { delwin( cmd ); delwin( con ); endwin(); }
void Console::log( string str ) { printw( str.c_str() ); refresh(); } main.cpp: #include "console.hpp"
int main() { Console & console = Console::get(); console.log( "Hello World !!!" ); return 0; } idk what to do... obj\console.o:console.cpp:(.rdata$.refptr._ZN7Console3conE[.refptr._ZN7Console3conE]+0x0): undefined reference to `Console::con' obj\console.o:console.cpp:(.rdata$.refptr._ZN7Console3cmdE[.refptr._ZN7Console3cmdE]+0x0): undefined reference to `Console::cmd'
|
|
Kinexity |
» 2017-08-14 17:39:11 Przed main wstaw : WINDOW Console::* con, Console::* cmd;
|
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2017-08-14 18:18:22 To samo(?): obj\console.o:console.cpp:(.rdata$.refptr._ZN7Console3conE[.refptr._ZN7Console3conE]+0x0): undefined reference to `Console::con' obj\console.o:console.cpp:(.rdata$.refptr._ZN7Console3cmdE[.refptr._ZN7Console3cmdE]+0x0): undefined reference to `Console::cmd' |
|
Kinexity |
» 2017-08-14 18:53:53 Mogłem pomylić się. Spróbuj wrzucić do console.cpp zamiast przed main. |
|
Luq |
» 2017-08-14 19:43:40 WINDOW * Console::cmd, * Console::con; To dodaj do console.cpp |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2017-08-14 19:43:45 Kompilator nie krzyczy o braku deklaracji, tylko linker coś wrzeszczy, że mi aż w uszach dzwoni... ale i tak nie rozumiem co on dostaje nie tak.
EDIT: Luq? To działa, ale nie rozumiem dlaczego. |
|
Luq |
» 2017-08-14 19:51:37 |
|
Rashmistrz Temat założony przez niniejszego użytkownika |
» 2017-08-14 20:05:00 Do console.cpp dodałem odpowiednie definicje po include'zie: WINDOW * Console::cmd; WINDOW * Console::con;
typedef void( * handler )( string ); handler Console::command; Tak, to było to. Dziękuję serdecznie. C: |
|
« 1 » |