03. december 2003 - 13:52Der er
13 kommentarer og 1 løsning
Forklaring på koblingen af filer!
Hej eksperter
Lige et spørgsmål fra en ny i C++
Jeg har lavet en header-fil, Verylong.h, der indeholder en klasse, verylong, med deklarationer (ikke definitioner) af forskellige funktioner. Jeg har så også lavet en fil, Verylong.cpp, der indeholder alle definitionerne på de forskellige funktioner i verylong. Dette gøres fx vha. verylong::getvl() for funktionen getvl() Jeg har så en ny fil, Vl_app.cpp, der skal benytte sig af klassen verylong. Jeg har derfor som første linie i denne fil: #include "Verylong.h" (filerne ligger i samme bib) Men når forsøger at kompilere Vl_app.cpp, siger linkeren: ---------- Capture Output ---------- "bcc32.exe" Vl_app.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland Vl_app.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external 'verylong::operator *(const verylong)' referenced from C:\DOCUMENTS AND SETTINGS\K\MY DOCUMENTS\VL_APP.OBJ Error: Unresolved external 'verylong::putvl() const' referenced from C:\DOCUMENTS AND SETTINGS\K\MY DOCUMENTS\02393\UGE11\VL_APP.OBJ Terminated with exit code 1
Er det fordi, den ikke kan finde Verylong.obj?? Eller hvad er der galt? Sikkert bare en newbie-30-50-fejl, men nu har jeg rodet med det et stykke tid! Plz help!
ups - biblioteket, som linkeren refererer til, er selvfølgelig det samme i begge fejl - jeg kom vist bare til at slette lidt af den ene ved indsættelsen!
arne_v >>> hvordan skal dette gøres? Lige nu kompilerer jeg Vl_app.cpp vha. Borlands compiler, dvs med: bcc32 Vl_app.cpp Linker den så ikke automatisk det der skal linkes, eller skal jeg gøre det mere manuelt?
Men meningen var jo egentlig, at Verylong.h skulle kunne inkluderes i toppen af enhver fil og dermed skulle funktionerne kunne bruges. Burde man ikke kunne det vha. den oprettede obj-fil? smid i øvrigt et svar, så du kan få p.!
hvis man nu fx ønsker IO, kan man sige #include <iostream> dermed finder den iostream (.h eller .obj??) i ens include/lib bib. ikke? men så kan jeg vel lave noget lignende i Vl_app kan jeg ikke?
jamen det jeg så ikke forstår er, at når jeg i ovenstående eksempel inkluderer Verylong.h, hvorfor finder bcc32 så ikke også automatisk min implemtation som ligger i Verylong.obj??
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.