+ Odpowiedz na ten temat
Pokaż wyniki od 1 do 3 z 3

Temat: kompilacja UDF dla mysql

  1. #1

    Dołączył
    Jun 2010
    Postów
    3

    kompilacja UDF dla mysql

    Witam,

    Od razu się przyznam nigdy nie programowalem na Mac'u, ale potrzebuję skompilować funkcję napisaną w C do MySQL'a.
    Przez kilka dni szukalem w sieci różnych parametrów i przykładów, ale ciągle mam problem.
    Wyjaśniam:
    mam funkcję napisaną w C (Damerau-Levenshtein), powinna być ładowana jako biblioteka dynamiczna do MySQL'a.
    Tu jest problem, przy wykonaniu w SQL'u "CREATE FUNCTION damlev RETURNS INT SONAME ‘libdamlev.dylib’;" pojawia się błąd MySQL'a - 1126 z informacją "no suitable image found".

    Bardzo proszę o pomoc, a najlepiej jak by ktoś mi skompilował tę funkcję.
    Dla osoby która się zna na tym jest to pewnie "jeden" ruch myszką, a ja już prawie tydzien przy tym siedzę.

    A dla informacji podaje jakie mam środowisko:
    MacBook Pro
    Mac OS X 10.6.3
    MAMP 1.9


    Pozdrawiam,
    Paweł
    Cytuj Cytuj  


  2. #2

    Dołączył
    Jun 2010
    Postów
    3
    Czy naprawdę nikt nie wie jak to zrobić ??!!
    Tylu programistów tutaj się wypowiada i żadnej podpowiedzi !!??
    Cytuj Cytuj  

  3. #3

    Dołączył
    Jun 2010
    Postów
    3

    [solved] kompilacja UDF dla mysql

    Szukałem i szukałem, no i znalazłem

    Wszystko działa ale na podstawowej instalacji mysql, a nie na pakietach typu MAMP - niestety.
    Podaje kolejność działań może się przyda:

    1. instalacja mysql'a z pakietu MySQL :: Download MySQL Community Server
    2. kompilacja wedle procedury:
    a. gcc -c -o libdamlevlim256.o damlevlim256.cpp -I/usr/local/mysql/include
    b. g++ -dynamiclib -std=gnu99 libdamlevlim256.o -current_version 1.1 -compatibility_version 1.1 -o libdamlevlim256.dylib
    3. wgrać do odpowiedniego katalogu: sudo cp libdamlevlim256.dylib /usr/local/mysql-5.1.48-osx10.6-x86_64/lib/plugin/libdamlevlim256.dylib
    4. uruchomić mysql'a.
    5. wykonać zapytanie sql: CREATE FUNCTION damlevlim256 RETURNS INT SONAME 'libdamlevlim256.dylib';

    i już wszystko działa.

    Pozdrawiam,
    Paweł
    Cytuj Cytuj  

+ Odpowiedz na ten temat

Tagi dla tego tematu