Avatar billede wice Nybegynder
24. april 2009 - 00:04 Der er 25 kommentarer

ed MySQL og C++

jeg har abjedet med C++ i godt 2 uger nu og jeg har lært en del allerrade. jeg er igang med at lave et spil i C++ og jeg har virkelig brug for en database. Jeg har søgt på nettet i 4 dage nu uden meget held :/. jeg fandt dog denne post (samme problem)og gjore det som arne_v skriv.. det virkede også helt fint indtil kommentar #28 hvor der bliver skrevet:
"Så, jeg addede det til commandline, nu compiler det"
det jeg gerne vil vide nu er:
1)hvad er "commandline"? (tror der skulle stå "command line")
jeg har fundet en del command line'er i options men der er ingen af dem der ser ud til at gøre en forskel.
2)hvad er det helt præsist der skal "addes" til den command line? hvad skal der stå

jeg sider lige nu fast med fejlen:

1>Main.obj : error LNK2019: unresolved external symbol _mysql_close@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_fetch_lengths@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_num_fields@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_query@8 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _exit referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _printf referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_error@4 referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main
1>LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
1>Debug\dbtest.exe : fatal error LNK1120: 13 unresolved externals

jeg bruger visual C++

og jeg er helt tomt for ideer after at have brugt en hel dag på at prøve at løse bare denne (forhåbenlige sidste) del af mit problem

jeg håber virkelig der er en der kan hjælpe mig med dette problem eftersom det er det eneste store problem der er tilbage

hvis der er brug for flere oplysninger så bare skriv, jeg er rimelig desperat efter at for dette her løst så jeg kan komme vidre med mit prejekt

på forhånd tak.
Avatar billede wice Nybegynder
24. april 2009 - 00:11 #1
hmm.. lader til at noget af Overskriften forsvandt :/ skulle stå "problemer med MySQL og C++" oh well
Avatar billede arne_v Ekspert
24. april 2009 - 00:28 #2
command line er når man åbner en kommando prompt og compiler der
Avatar billede arne_v Ekspert
24. april 2009 - 00:30 #3
http://www.eksperten.dk/guide/206

har præcise kommmando linie for nogle af de gængse compilere
Avatar billede arne_v Ekspert
24. april 2009 - 00:31 #4
Man kan naturligvis også bygge fra Visual C++ bare ved at sætte de rette projekt options.
Avatar billede arne_v Ekspert
24. april 2009 - 00:32 #5
Men prøv lige og fortæl præcis hvilken software du bruger og hvordan du bruger den, så finder vi ud af den rette build procedure.
Avatar billede wice Nybegynder
24. april 2009 - 08:00 #6
jeg har fuld versionen af MS visual studio 2008 (90 day trial versionen)  med SP 1
jeg bruger MS visual C++ 2008
mit OS er windows vista

tror ikke det har den store betydning men jeg har også installeret dark GDK som er en stor hjælp til at lave spil

jeg er ikke helt sikker på hvad du mener med hvordan jeg bruger den. jeg laver et 2D spil med hjælp fra dark GDK, jeg er som sagt kun lige begyndt at abjede med Visual C++ så jeg kender ikke så mange indstillinger endnu.
hvis det kan hjælpe så kan jeg skrive mine indstillinger her.
Avatar billede arne_v Ekspert
25. april 2009 - 21:48 #7
Jeg har kun VC++ Express, men her er hvad jeg skal sætte i den for at builde:

project properties
    configuration properties
        C/C++
            General
                Additional Include Directories - tilføj C:\mysql\include
            Preprocessor
                Proprocessor Defines - tilføj SOCKET=int
        Linker
            General
                Additional Library Directories - tilføj C:\mysql\lib\opt
            Input
                Additional Dependencies - tilføj libmysql.lib
Avatar billede arne_v Ekspert
25. april 2009 - 21:48 #8
Placering af MySQL include og lib skal naturligvis tilrettes din PC.
Avatar billede wice Nybegynder
25. april 2009 - 22:45 #9
tak for svaret!
jeg har gjort det du skrev, men nu siger den
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(54) : error C2628: 'UINT_PTR' followed by 'int' is illegal (did you forget a ';'?)
for hver .cpp fil der er i mit script.
jeg har prøvet at sætte "//" foran det (for at teste) men så kommer den gamle fejl bare tilbage.
det der står på linje 54 er:

typedef UINT_PTR      SOCKET;
Avatar billede arne_v Ekspert
25. april 2009 - 23:25 #10
drop den her:

Proprocessor Defines - tilføj SOCKET=int
Avatar billede wice Nybegynder
25. april 2009 - 23:48 #11
så kommer unresolved external symbol fejlen igen
Avatar billede arne_v Ekspert
26. april 2009 - 01:19 #12
Du har det to her:

        Linker
            General
                Additional Library Directories - tilføj C:\mysql\lib\opt
            Input
                Additional Dependencies - tilføj libmysql.lib
Avatar billede wice Nybegynder
26. april 2009 - 14:41 #13
ja..
mine include og lib mapper ligger i C:\Program Files\MySQL\MySQL Server 5.1 og jeg har tilføjet dem begge
Avatar billede kdasummer Nybegynder
26. april 2009 - 18:44 #14
Nu har jeg absolut intet at have det her i, men jeg tvivler på der er særlig mange spil der bruger en MySQL database til at gemme data. I det her tilfælde ville jeg kigge på SQLite. Så vidt jeg har læst burde det også være enkelt at bruge i C++.
Avatar billede arne_v Ekspert
26. april 2009 - 19:43 #15
Og du har:

Additional Dependencies - tilføj libmysql.lib

?
Avatar billede wice Nybegynder
26. april 2009 - 19:49 #16
jeg har gjort alt hvad du skrev i #7 (og slettet SOCKET=int igen)
jeg har tjekket flere gange nu at alt er sat ind rigtigt
Avatar billede arne_v Ekspert
26. april 2009 - 20:05 #17
Og det er de samme unresolved som oprindeligt?
Avatar billede wice Nybegynder
26. april 2009 - 20:18 #18
1>Main.obj : error LNK2019: unresolved external symbol _exit referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol _printf referenced in function _main
1>LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup

er væk nu ellers er det de samme fejl
Avatar billede arne_v Ekspert
26. april 2009 - 20:37 #19
Det vil sige at alle de unresolved symbols er mysql_xxxxx.

Ligger libmysql.lib filen i det dir du har angiver i "Additional Library Directories" ?
Avatar billede wice Nybegynder
26. april 2009 - 20:43 #20
ja. har tjekket flere gange.
kan det være en fejl i filen?
Avatar billede arne_v Ekspert
27. april 2009 - 02:31 #21
Har jeg svært ved at tro på.

Inde i project properties kan du se command line for både compile og link - kan du copy paste dem herind?
Avatar billede wice Nybegynder
27. april 2009 - 16:23 #22
når du skriver compile og link mener du så under C/C++ og Linker?
i så fald så er de her:

C/C++:
/I "C:\Program Files\MySQL\MySQL Server 5.1\include" /FD /EHsc /MTd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /nologo /c /Zi /TP /errorReport:prompt

Linker:
/OUT:"Debug\Map Editor.exe" /NOLOGO /LIBPATH:"C:\Program Files\MySQL\MySQL Server 5.1\lib\opt" /MANIFEST /MANIFESTFILE:"Debug\Map Editor.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /NODEFAULTLIB:"libcmtd" /NODEFAULTLIB:"msvcrt" /NODEFAULTLIB:"atls" /DEBUG /PDB:"c:\Users\tobias\Documents\Visual Studio 2008\Projects\Map Editor\Map Editor\Debug\Map Editor.pdb" /SUBSYSTEM:WINDOWS /DYNAMICBASE /NXCOMPAT /ERRORREPORT:PROMPT libmysql.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Avatar billede arne_v Ekspert
28. april 2009 - 02:46 #23
Jeg har:

/Od /I "C:\mysql\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "SOCKET=int" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /ZI /TP /errorReport:prompt

og:

/OUT:"C:\Documents and Settings\Arne\My Documents\Visual Studio 2008\Projects\mysql\Debug\mysql.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C:\mysql\lib\opt" /MANIFEST /MANIFESTFILE:"Debug\mysql.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"c:\Documents and Settings\Arne\My Documents\Visual Studio 2008\Projects\mysql\Debug\mysql.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT libmysql.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

Og umiddelbart ser de ret ens ud.

Hvad viser:

dir "C:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libmysql.lib"

?
Avatar billede wice Nybegynder
28. april 2009 - 16:39 #24
nå jeg skriver det i denne computer så prøver den at åbne libmysql.lib så stien er god nok
Avatar billede arne_v Ekspert
05. juli 2009 - 19:47 #25
Du kan prøve og tilrette de øvrige options - nogen gange kan compile options godt påvirke symbolerne der genereres (med og uden _ prefix, med og uden @n suffix etc.).
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
Computerworld tilbyder specialiserede kurser i database-management

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