Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[C++] compilen en linken errorLNK2001

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste tweakers,

Na dagenlang prutsen aan C++ code lukt het mij nog steeds niet om een goed werkend programma te bouwen. (voornamelijk error LNK2001). Ik gebruik visual C++ express ed op windows XP.

Ook kleine prutsprogramma's als:

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>


int main(int argc, char **argv)
{
Fl_Window *window = new Fl_Window(300,180);
Fl_Box *box = new Fl_Box(20,40,260,100,"Hello, World!");
box->box(FL_UP_BOX);
box->labelsize(36);
box->labelfont(FL_BOLD+FL_ITALIC);
box->labeltype(FL_SHADOW_LABEL);
window->end();
window->show(argc, argv);
return Fl::run();
}

willen niet linken. Weten jullie een tutorial waar ook met name de instellingen in je compiler worden beschreven? (er zijn namelijk hele mooie tutorials voor beginners over code maar niet over het leren hoe je verschillende files gebruikt)
Bij voorbaat dank!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 01-11 22:03

leuk_he

1. Controleer de kabel!

google=add libraries to linker visual C++ express

http://www.learncpp.com/c...sual-studio-2005-express/

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Verwijderd

Topicstarter
Bedankt maar helaas lukt het nog niet.

Ik heb alle stappen opgevolgd maar ook bij een zeer eenvoudig prgramma (net als het bovenstaande) blijf ik fouten houden.

bijvoorbeeld:
1>Linking...
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
1>fltk.lib(Fl.obj) : error LNK2019: unresolved external symbol __imp__GdiFlush@0 referenced in function "public: static void __cdecl Fl::flush(void)" (?flush@Fl@@SAXXZ)
1>fltk.lib(fl_line_style.obj) : error LNK2001: unresolved external symbol __imp__DeleteObject@4
1>fltk.lib(Fl_Pixmap.obj) : error LNK2001: unresolved external symbol __imp__DeleteObject@4
1>fltk.lib(Fl_Image.obj) : error LNK2019: unresolved external symbol __imp__DeleteObject@4 referenced in function "public: virtua


Is het een optie om een volledig nieuwe installatie van visual C++ xpress 2005 te doen, nieuwe SDK installatie? Of moet dat niets uitmaken?

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Oh, dat gedoe... je moet in elke static library met dezelfde CRT linken (ie. multi-threaded debug/non-debug static/dynamic)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:04

.oisyn

Moderator Devschuur®

Demotivational Speaker

't Lijkt erop alsof je niet met gdi32.lib linkt. Wat vrij vreemd is aangezien die default meelinkt. Hoe heb je je project gemaakt?

[ Voor 48% gewijzigd door .oisyn op 15-07-2008 20:27 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 14:24
Hoe kom je aan je FLTK libraries? Heb je gewoon de sources aan je project toegevoegd? (Dan zouden conflicten zoals Zoijar noemt niet voor moeten komen.)

Verwijderd

Topicstarter
Bedankt voor het meedenken.
het betreft een gekregen project, ik heb het dus niet zelf geschreven en de collega waar ik het van heb is ook al weer even weg. De foutmelding: warning LNK4098: defaultlib 'MSVCRT' heb ik inmiddels weg.

gdi32.lib zit in de SDK/Lib in de code die ik destijds heb gekregen wordt deze denk ik nergens gevraagd

De FLTK libraries heb ik gedownload van fltk.org en gebuild (dat ging goed, heb de 1.1.9 versie gebuild) en de fltk folder heb ik geincludeerd in alle lib en include paden....


Zoijar bedoel je met "je moet in elke static library met dezelfde CRT linken (ie. multi-threaded debug/non-debug static/dynamic)" dat omdat ik misschien op een andere computer werk, (die misschien een andere processor heeft) de verkeerde libs link?

Alvast dank!!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Verwijderd schreef op woensdag 16 juli 2008 @ 10:55:
Zoijar bedoel je met "je moet in elke static library met dezelfde CRT linken (ie. multi-threaded debug/non-debug static/dynamic)" dat omdat ik misschien op een andere computer werk, (die misschien een andere processor heeft) de verkeerde libs link?
In je options, hier:

Afbeeldingslocatie: http://www.xs4all.nl/~smit/options.jpg

moet je in elk project dezelfde CRT gebruiken. Als een andere library vooraf gecompileerd is met een andere CRT optie, dan krijg je die warning. Die ignore default library optie werkt vaak slecht (in mijn ervaring) het is beter om alles opnieuw te compilen met dezelfde CRT. Als je een vooraf gecompileerde library hebt met een bepaalde CRT, zet dan je eigen project ook op dezelfde CRT. Het probleem begint pas echt als je twee pre-compiled libraries hebt met verschillende CRTs. Maar je kan die setting dus proberen te veranderen totdat je geen warning meer krijgt.

Verwijderd

Topicstarter
En uiteindelijk werkt het!!!
Enorm bedankt, door het veranderen van de Runtime Lib instellingen is het aantal fouten al gedaald. Toen bleek dat ik te weinig dependencies had toegevoegd bij dit project en liep ineens alles! Weer een hoop geleerd, bedankt iedereen.
Pagina: 1