Makefile -> LD_LIBRARY_PATH? Programm kann nicht ausgefuehrt werden!



  • Hab ne Frage, schreib gerade als Aufgabe an nem Makefile das macht unter anderem folgendes:

    libdynamic_utils.so: utils_math.o utils_net.o
            $(CC) -shared $? -o $@
    
    d_applic: applic.o
            $(CC) -o $@ -L. -ldynamic_utils $?
            export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
            ./d_applic
    

    das Programm d_applic wird aber nicht ausgefuehrt weil er ein Problem mit der Library hat, die Komplette ausgabe ist bei mir:

    gcc -c -o utils_math.o utils_math.c
    gcc -c -o utils_net.o utils_net.c
    gcc -shared utils_math.o utils_net.o -o libdynamic_utils.so
    gcc -c -o applic.o applic.c
    gcc -o d_applic -L. -ldynamic_utils applic.o
    export LD_LIBRARY_PATH=/.../Uni/OS/ue02/01
    ./d_applic
    ./d_applic: error while loading shared libraries: libdynamic_utils.so: cannot open shared object file: No such file or directory
    make: *** [d_applic] Fehler 127

    Der Pfad den ich fuer LD_LIBRARY_PATH setze passt und auch sonst seh ich keinen Fehler, es funktioniert aber nicht, aber wieso?



  • make ruft für jede zeile eine neue shell auf, also

    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
    ./d_applic
    

    geht nicht, da bei ausführun LD_LIBRARY_PATH nicht gesetzt ist.

    LD_LIBRARY_PATH=${LD_LIBRARY_PATH} ./d_applic
    

    sollte z.B. gehen



  • Sowas muss man erst mal wissen, jetzt funktionierts!

    Danke!! 🙂


Anmelden zum Antworten