1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Prozedureinsprungspunkt nicht gefunden (libmysql.dll)

  • bruzzler
  • 3. September 2004 um 15:48
  • Unerledigt
  • bruzzler
    8
    bruzzler
    Mitglied
    Reaktionen
    1
    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

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • ubu_roi
    3
    ubu_roi
    Mitglied
    Reaktionen
    1
    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 :) ?

    De part de ma chandelle verte, je ne comprends pas.

  • bruzzler
    8
    bruzzler
    Mitglied
    Reaktionen
    1
    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

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • ubu_roi
    3
    ubu_roi
    Mitglied
    Reaktionen
    1
    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 :)

    De part de ma chandelle verte, je ne comprends pas.

  • Alex_K
    15
    Alex_K
    Mitglied
    Reaktionen
    10
    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.

    Total world domination is proceeding as planned.

  • bruzzler
    8
    bruzzler
    Mitglied
    Reaktionen
    1
    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.. :winking_face: )

    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

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • bruzzler
    8
    bruzzler
    Mitglied
    Reaktionen
    1
    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

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • bruzzler
    8
    bruzzler
    Mitglied
    Reaktionen
    1
    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:

    This is Linux land...in silent nights you can hear windows machines reboot!
    ---
    Der kleine Windows-Kobolt auf meiner linken Schulter befiehlt:"Du sollst alles NIEDERBRENNEN!"

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung