Forum huvudsida -> Programmering -> C++ och non-standard bibliotek
Sidor: 1
Tower800 | 17:36 - 12:a Februari 2007 | Post #1 | |
Medlem Inlägg: 3 Skicka PM |
Hejsan! Jag är relativt ny inom C++ programmering. Jag har testat många olika kompilatorer Borland C++ Builder 6, MS Visual C++ 2005 Express, Dev-Cpp och Code::Blocks med GCC. Jag har fastnat för Code:Blocks och tänker därmed använda denne framöver. Till mitt problem då.. Jag försöker använda MIRACL biblioteket "Multiprecision Integer and Rational Arithmetic C/C++ Library". Jag har försökt använda MIRACL i alla ovannämnda kompilatorer men har inte lyckats få igång biblioteket på någon av dem. Jag får alltid [linker error] Unresolved Reference ......... BLA BLA.. Koden ser ut så här i Code::Blocks - #include <iostream> #include <Big.h> using namespace std; int main() { Big x; cout << "Hello world!" << endl; return 0; } Kompileringen ser ut så här - Project : Console application Compiler : GNU GCC Compiler (called directly) Directory : D:\CPP\Compiler\CodeBlocks\Projects\ -------------------------------------------------------------------------------- Switching to target: default Linking console executable: D:\CPP\Compiler\CodeBlocks\Projects\Project1.exe ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0x677): undefined reference to `__dj_stdout' ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0xa93): undefined reference to `__dj_stdout' ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0xad7): undefined reference to `__dj_stdout' ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0xc86): undefined reference to `__dj_stdout' ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0xca2): undefined reference to `__dj_stdout' ..\lib\miracl.a(mrcore.o):mrcore.c:(.text+0xcc9): more undefined references to `__dj_stdout' follow collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 0 seconds) Jag includerar MIRACL biblioteket 'miracl.a' i Code::Blocks genom Projekt/Build Options och väljer fliken Linker. Där inkluderar jag filen miracl.a. Jag förmodar att mina bristfälliga kunksaper om hantering av "icke standard bibliotek" kan vara problemet här..är det någon som använder MIRACL eller annars ändå kan leda mig på rätt väg i detta frustrerande problem ? Mången tacksam för svar Tower800 ------------------------- Ingen signatur! |
Slash | 19:43 - 12:a Februari 2007 | Post #2 | |
Medlem Inlägg: 141 Skicka PM |
miracl.a är antagligen till linux. Du måste enligt dokumentationen använda något av de andra libsen som skickades med. Det vill säga ms32.lib eller bc32.lib. I värsta fall kan du ju kompilera ditt eget lib. ...terkom om du behöver mer hjälp med det. (Eftersom du tidigare sa att du använde MSVC så antog jag att du sitter på en windowsmaskin). ------------------------- Ingen sigantur! Senast redigerad 19:44 - 12:a Februari 2007 |
Tower800 | 20:35 - 12:a Februari 2007 | Post #3 | |
Medlem Inlägg: 3 Skicka PM |
Hej Slash! Jo det är sant, jag sitter på en Windows maskin. ms32.lib är skapat med/för Microsoft kompilator, bc32.lib är skapat med/för Borland kompilator och miracl.a är skapat med/för gcc kompilatorn. Jag har kompilerat mitt eget bibliotek nu med GCDOIT.BAT som använder GCC kompilatorn helt utan errors. Och i och med detta så får jag nu inte heller längre dessa Unresolved references errors, men därimot en massa andra errors Så det handlar kanske om att lära sig MIRACL till nu då Tackar för ditt svar Slash Mvh Tower800 ------------------------- Ingen signatur! |
agge89 | 22:57 - 13:e Februari 2007 | Post #4 | |
Medlem Inlägg: 13 Skicka PM |
Hej int main() { const long double pi=3.14159265382; long double la; float grad; cout<<"skriv in en grad:"<<endl; cin >>grad; grad=180/pi*grad; la=sin(grad); cout<<"sinus för graden är: "<<la<<endl; cin.ignore(255, '\n'); cin.get(); return 0; } När man skriver in en grad, så måste man omvandla den till radianer, för att få fram sinus för en grad. omvandlingen blir något fel, och svaret blit istället för t.ex. 1, -0,9865, eller nåt. Går det att göra så att den räknar med grader istället, eller finns det någon annan lösning på problemet? Jag använder math.h som biblotek. Tack på förhand ------------------------- Augustismen |
Slash | 23:09 - 13:e Februari 2007 | Post #5 | |
Medlem Inlägg: 141 Skicka PM |
Faktum är att du bara har sett förbi en liten detalj. Det ska vara rad = pi*grad/180;, så om du ändrar det borde du förhoppningsvis få bättre resultat ------------------------- Ingen sigantur! |
Independence | 23:16 - 13:e Februari 2007 | Post #6 | |
Administratör Inlägg: 1800 Skicka PM |
agge89: Du ska ta pi/180, inte 180/pi Dock förstår jag inte varför du skriver i den här tråden, den här tråden hör ju till tower800's problem med icke-standardbibliotek och har inget alls att göra med radianer. Har du ett helt orelaterat problem bör du skapa en ny tråd istället. ------------------------- Vi är riddarna som säger fiskbulle! |
FunkyChicken | 00:48 - 14:e Februari 2007 | Post #7 | |
Nyhetsredaktör Inlägg: 800 Skicka PM |
Och ditt värde på pi är fel vid åttonde decimalen - 3.14159265358 ska det vara! (såvadå? det är väl inget lustigt med att man direkt noterar en saknad siffra i decimalutvecklingen av pi? va? VA?) |
Sidor: 1
Forum huvudsida -> Programmering -> C++ och non-standard bibliotek
Du får inte posta i den här tråden | Till toppen
Datum
2024-04-27 17:59
Vecka: 17
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.