Avatar billede tommya Nybegynder
06. april 2006 - 12:56 Der er 10 kommentarer og
1 løsning

Linker problem i BDS2006

Jeg har et problem når jeg vil kompilere mit program, hver gang jeg prøver får jeg en masse linker errors. Programmet i sig selv er ganske simpelt, men ved at teste har jeg fundet ud af at problemet ikke ligger i min kode. Når jeg f.eks. laver et nyt konsol program og vælger use VCL i boksen så vil jeg uanset den kode der står få Linker errors.

Hvis jeg laver et tomt program med blot følgende kode:

#include <vcl.h>
#include <windows.h>

WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    return 0;
}

Får jeg følgende Linker errors:
[Linker Error] Error: Unresolved external 'Sysutils::EDivByZero::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external '__fastcall Sysutils::Exception::Exception(const System::AnsiString)' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::ERangeError::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EIntOverflow::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EInvalidOp::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EZeroDivide::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EOverflow::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EUnderflow::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EAccessViolation::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EPrivilege::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EControlC::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Sysutils::EStackOverflow::' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\CP32MT.LIB|xx
[Linker Error] Error: Unresolved external 'Typinfo::BooleanIdents' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\RELEASE\VCLE.LIB|vclinit
[Linker Error] Error: Unresolved external 'Typinfo::DotSep' referenced from C:\PROGRAM FILES\BORLAND\BDS\4.0\LIB\RELEASE\VCLE.LIB|vclinit

Det virker som fejl der kommer fra f.eks. exceptions, men exceptions er slået til i mine project settings. Jeg får dem kun i console applicatins hvor jeg vælger at bruge VCL. Og jeg får dem kun når jeg yderligere fravælger: Build With Runtime packages.

Sagen er den at jeg gerne vil lave en selvstændig exe fil, og jeg plejer bare at skulle fjerne krydset i Use Dynamic RTL og Build With Runtime Packages men her får jeg altså disse fejl. Jeg får dem ikke hvis jeg vil bygge et VCL forms program.
Avatar billede tommya Nybegynder
06. april 2006 - 12:56 #1
nogen der kan sige hvad jeg skal gøre for at bygge mit selvstændige program?
Avatar billede lars314 Nybegynder
07. april 2006 - 13:59 #2
Kan du over hovedet bruge VCL i consol programmer?

Det ser ud som om du mangle at få linket Sysutils bliblioteket til din applikation.
Avatar billede lars314 Nybegynder
07. april 2006 - 14:00 #3
Det viker her. Jeg har følgende i min cpp-file (unit1.cpp)

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
    return 0;
}
//---------------------------------------------------------------------------
Avatar billede tommya Nybegynder
10. april 2006 - 10:24 #4
Hmm mærkeligt, det samme ville jeg ikke kunne, villige prøve at tjekke op på om sysutils er linket ordentligt.
Avatar billede lars314 Nybegynder
10. april 2006 - 11:18 #5
Din main ser meget anderledes ud end den jeg får.
Jeg laver bare en ny consol applikation med vcl, så får jeg det jeg har postet.
Dit ser anderledes ud.
Avatar billede tommya Nybegynder
11. april 2006 - 09:39 #6
Det kommer vel i bund  og grund an på om du vælger multitasking eller ej, problemet er ikke den kode jeg får, men at jeg når jeg fravælger Use Dynamic RTL og Build With Runtime Packages at det ikke kompilere. Fjerner jeg ikke krydset i disse kompilere det fint. Jeg kan bare bruge denne exe fil til det den skal.
Avatar billede lars314 Nybegynder
11. april 2006 - 10:18 #7
Ok, nu er jeg med på hvad det er du gør.
Jeg får de samme fejl som dig.
Eneste måde jeg kan undgå dem på er at sætte fluebenet "Console Application"
Så får jeg ingen fejl.
Avatar billede lars314 Nybegynder
11. april 2006 - 10:29 #8
Det lader til det er en fejl
http://qc.borland.com/wc/qcmain.aspx?d=22814
Avatar billede tommya Nybegynder
11. april 2006 - 11:28 #9
oki, så må jeg finde en anden måde at løse problemet på ind til Borland får løst deres del. Jeg takker mange gange for hjælpen, hvis du ligger et svar siger jeg tak.
Avatar billede lars314 Nybegynder
11. april 2006 - 11:44 #10
Nu ved ikke hvad det er du skal lave men ellers forsøg dig med at krydse "Console Application" af også.
Held og lykke
Avatar billede tommya Nybegynder
11. april 2006 - 11:48 #11
Vil jeg gøre, og endnu engang tak fordi du tog dig tid til at hjælpe...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester