Kompilierung in der Konsole geht, in Kdevelop nur Fehler...

ufosworld

Grünschnabel
Hallo, ich beschäftige mich gerade mit dem laden von .so Files unter Linux in C/C++....

nun habe ich folgendes Beispiel gefunden.

Code:
#include <stdio.h>
#include <dlfcn.h>

int main(int argc, char **argv) {
    void *handle;
    double (*cosine)(double);
    char *error;

    handle = dlopen ("libm.so", RTLD_LAZY);
    if (!handle) {
        fprintf (stderr, "%s\n", dlerror());
        exit(1);
    }

    cosine = dlsym(handle, "cos");
    if ((error = dlerror()) != NULL)  {
        fprintf (stderr, "%s\n", error);
        exit(1);
    }

    printf ("%f\n", (*cosine)(2.0));
    dlclose(handle);
    return 0;
}

wenn es das Programm in eine .c Datei speichere und dann folgendes mache

Code:
gcc -rdynamic -o foo foo.c -ldl

kann ich das Programm foo aufrufen und es funktioniert...

nun wollte ich das alles jedoch nicht in C sondern in Kdevelop mit C++ schreiben.

1. was muss ich am Quellcode ändern, damit es läuft...
weil wenn ich nur Copy/Paste mache dann kommen folgende Fehler/Warnungen beim kompilieren....

Code:
in.cpp' || echo './'`main.cpp
main.cpp: In function `int main(int, char**)':
main.cpp:46: warning: invalid conversion from `void*' to `double (*)(double)'
main.cpp:35: warning: unused parameter `int argc'
main.cpp:35: warning: unused parameter `char**argv'


main.o: In function `main':
/usr/usr/ready/ben/sofiles/sofiles/main.cpp:40: undefined reference to `dlopen'
/usr/usr/ready/ben/sofiles/sofiles/main.cpp:42: undefined reference to `dlerror'
/usr/usr/ready/ben/sofiles/sofiles/main.cpp:46: undefined reference to `dlsym'
/usr/usr/ready/ben/sofiles/sofiles/main.cpp:47: undefined reference to `dlerror'
/usr/usr/ready/ben/sofiles/sofiles/main.cpp:53: undefined reference to `dlclose'
collect2: ld returned 1 exit status

2. welche Compileroptionen muss ich für C++ angeben...

also wenn ich es dann als Cpp Datei habe , was muss ich als Parameter an g++ anhängen damit er mir das sauber durchcompiliert?

3. Welche Optionen wären in Kdevelop noch anzuzugeben beim Compiler? und wo genau CxxFlags CppFlags?

mfg

UFOSWORLD
 
Zurück