1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Prozedureinsprungspunkt nicht gefunden (libmysql.dll)

  • bruzzler
  • 3. September 2004 um 15:48
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • bruzzler
    Punkte
    586
    Beiträge
    92
    • 3. September 2004 um 15:48
    • #1

    hallo!
    ich habe ein kleines programm in gtk und mysql geschrieben welches unter linux auch wunderbar läuft.
    nun muss ich es aber auf windows portieren und nach einiger zeit hab ich es auch geschafft mithilfe von
    mingw und msys das ganze zu kompilieren und auch richtig zu linken (zumindest gibts keine errors mehr..)
    wenn ich jetzt mein programm ausführen will bekomme ich folgende fehlermeldung:
    "Der Prozedureinsprungspunkt "mysql_fetch_row@4" wure in der DLL "libmysql.dll" nicht gefunden"
    ohne mysql läuft das programm - also nur mysql treibt mich unter windows zum wahnsinn..
    tja, und sämtliche recherche hat mich bis jetzt nicht weitergebracht..vielleicht kann mir hier jemand helfen?
    vielen dank
    bruz

    compileraufruf:

    Code
    gcc -o sepp.exe (gtk-zeug) \
    -L "C:\mysql\lib\opt" -I "C:\mysql\include" \
    -L "C:\WINDOWS\system32" -lmysql -lws2_32 -lmsvcrt20
  • ubu_roi
    Punkte
    46
    Beiträge
    8
    • 4. September 2004 um 00:42
    • #2

    Ich habe mal die libmysql.dll unter cygwin gelinkt (ist schon einige zeit her)...

    Hasst du folgendes gemacht?

    Zitat von http://www.cygwin.com/cygwin-ug-net/dll.html


    Linking Against DLLs

    If you have an existing DLL already, you need to build a Cygwin-compatible import library. If you have the source to compile the DLL, see the Section called Building DLLs for details on having gcc build one for you. If you do not have the source or a supplied working import library, you can get most of the way by creating a .def file with these commands (you might need to do this in bash for the quoting to work correctly):

    Code
    echo EXPORTS > foo.def
    nm foo.dll | grep ' T _' | sed 's/.* T _//' >> foo.def

    Note that this will only work if the DLL is not stripped. Otherwise you will get an error message: "No symbols in foo.dll".

    Once you have the .def file, you can create an import library from it like this:

    Code
    dlltool --def foo.def --dllname foo.dll --output-lib foo.a

    P.S. Wenn du das auf windoze und linux laufen haben mochtest, ware da nicht wxWidgets ne bessere wahl fur's gui :) ?

  • bruzzler
    Punkte
    586
    Beiträge
    92
    • 5. September 2004 um 11:51
    • #3

    ja hab ich gemacht - nach anweisung von:
    http://dev.mysql.com/doc/mysql/de/W…_compiling.html
    aber bis jetzt hauts nicht hin...naja und wegen gtk:
    das funktioniert super, unter win, linux und mac. und außerdem gibts glade zum designen und das spart schon einiges an zeit würd ich meinen.
    bin am überlegen ob ich den mysql-teil rausschmeiß und mal postgre probier..aber irgendwie kanns das doch nicht geben, oder?
    najo, danke jedenfalls für die antwort
    -ciao bruz

  • ubu_roi
    Punkte
    46
    Beiträge
    8
    • 5. September 2004 um 13:07
    • #4

    Vom postgre wuerde ich abraten (falls du das portabel haben mochtest, fur den postgre server gibts derzeit keinen _nativen_ windoze port).

    Poste mal ein stuck mysql quellcode (wie gesagt, ist schon einige zeit her dass ich die mysql c-api verwendet habe), ich versuche das am abend im cygwin zu kompilieren, muss doch irgentwie gehen !!!

    @gtk: lauft zwar unter win/unix/mac, wxWidgets bietet aber native UIs unter win/unix/mac :)

  • Alex_K
    Punkte
    2.465
    Beiträge
    487
    • 5. September 2004 um 13:53
    • #5
    Zitat von ubu_roi

    (falls du das portabel haben mochtest, fur den postgre server gibts derzeit keinen _nativen_ windoze port).


    das kann aber nicht mehr lange dauern. mit der version 8 (von dem es vor kurzem die erste beta gab) wird es auch einen nativen windows port geben.

  • bruzzler
    Punkte
    586
    Beiträge
    92
    • 7. September 2004 um 15:11
    • #6

    danke für die antworten und erstmal entschuldigung dass ich mich erst jetzt melde - war ein paar tage ohne netz (oh mein gott.. ;) )

    hab ein bisserl herumprobiert und unter anderem das service-pack 2 installiert - seitdem kann ich mit der oben genannten gcc-zeile
    mein programm nicht mehr übersetzen - also wirds an meinen linker optionen liegen, oder?
    für testzwecke hab ich probiert das von mysql mitgelieferte testprogramm zu übersetzen
    (in <path_to_mysql>/examples/libmysqltest/) ... auch ohne erfolg!

    mein programm ist vom mysql-part her sehr einfach:
    zuerst mysql_real_connect , dann ein paar querys absetzen
    (mysql_query(&db, query), mysql_store_result(&db) ) und die ergebniszeilen abholen (mysql_fetch_row(result))
    bei programm-ende mysql_close(&db)
    das wars im großen und ganzen und diese funktionen sind auch in den mysql-beispielprogrammen dabei....

    bin für jeden hinweis _SEHR_ dankbar!
    ciao bruz

  • bruzzler
    Punkte
    586
    Beiträge
    92
    • 7. September 2004 um 18:27
    • #7

    ok..hab jetzt die ganze prozedur mit reimp und dlltool nochmals gemacht und nun kompiliert sowohl
    mein programm und das mysql-beispiel programm wieder sang-und klanglos (soll heißen ohne warnings und linker errors usw.) nur bei
    der ausführung kommt der selbe fehler:
    "Der Prozedureinsprungspunkt "mysql_close@4" wurde in der DLL "libmySQL.dll" nicht gefunden".

    irgendwas mach ich da grob falsch - also zum verständnis:
    reimp und dlltool erzeugen libmysql.a die der compiler braucht zum korrekten linken. libmySQL.dll wird bei der ausführung
    gebraucht und soweit ich gelesen hab wurde die mit msvc kompiliert...liegt hier mein problem?

    und unter cygwin würde ich mysql kompilieren und das dann wie unter linux übersetzen, oder? braucht dann der benutzer
    auch cygwin um mein programm unter win auszuführen oder nur die cygwin.dll (eher letzteres oder?)
    ist das vielleicht der einfachere weg?

    danke, ciao bruz

  • bruzzler
    Punkte
    586
    Beiträge
    92
    • 7. September 2004 um 18:57
    • #8

    ok..ich habs endlich entdeckt - das programm startet...ogottogott
    dlltool mit der option -k haben mein programm nun zum laufen gebracht...
    vielen dank ubu_roi und auch alex_k

    gefunden auf http://rubydotnetproxy.rubyforge.org/mysql_win.html

    Zitat

    The -k option to dlltool tells it that functions in libmySQL.dll won't have @ decorations. Otherwise you will get runtime errors when using mysql (like "Can't find function mysql_foobar@8 in libmySQL.dll)

    das steht nicht auf der mysql seite die ich oben gepostet hab - aber das mit dem k-switch hab ich irgendwo anders schon gelesen und mir auch eingebildet das läängst probiert zu haben...najo
    bin froh das es geht!!:verycool:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum