24. oktober 2007 - 11:01Der er
30 kommentarer og 2 løsninger
undefined reference to
Jeg er ved at lave en simpel menu med ncurses. Men har fået nogle problemer tidligt. Jeg har copy pastet det fra en tutorial fra nettet, men den vil ikke compile. Får følgende fejl
/source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:46: undefined reference to `new_item' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:49: undefined reference to `new_menu' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:51: undefined reference to `post_menu' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:57: undefined reference to `menu_driver' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:60: undefined reference to `menu_driver' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:65: undefined reference to `free_item' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:66: undefined reference to `free_item' /source/cpp/fluxboxinstaller/src/fluxboxinstaller.cpp:67: undefined reference to `free_menu'
Her er min main funktion, hvor fejlen ligger
int main() { ITEM **my_items; int c; MENU *my_menu; int n_choices, i; ITEM *cur_item;
Ja, har lavet en del i mono. Men ideen med netop denne app, er netop at X ikke skal være startet eller installeret. Og nu har jeg lavet det meste af det i C++, selve det der skal installere og configurere systemet. Så ville egentlig bare lave et grafisk interface, så man kan fravælge nogle ting. Og tilpasse installationen til sit eget behov. Og det er nu også en udfordring at lave det med ncurses, da jeg aldrig har brugt det før. Men skal nok få det lært :) Jeg prøver lige og teste det her imorgen
Jeg ville uden at kende hverken menu.h eller menu.cpp gætte på at den er defineret i menu.h og implementeret i menu.cpp og derfor får du en linker fejl hvis du ikke linker menu.o (eller libmenu.a hvis det er en library) med din main.
Ja det er en linker fejl, linkeren kan ikke finde den library som indeholer new_item, det kunne være en manglende path eller manglende bibliotek. Måske mangler der bare en -Lxxx eller -lxxx i din make.
Jeg læste noget om at man skulle bruge en dev udgave af ncurses til visse ting.
Hej Find ud af om der findes en libmenu.a. Find stedet i kdevelop hvor du sætter linker biblioteker og tilføj pathen til libmenu.a og/eller libncurses.a, hvis den findes tilføj libmenu.a til de filer der skal linkes ind (project->options->linker options).
Jeg kan godt finde libmenu.a og libncurses.a, de ligger i /usr/lib. Men kan ikke finde et sted, hvor jeg kan tilføje dem i kdevelop... Kan godt finde projekt options
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.