ich versuche gerade eine einfache shared libary bzw. dynamsiche Bibliothek zu erstellen. Doch leider scheine ich was falsch zu machen.
Meine beiden Dateien (Bibliothek und Aufrufprogramm):
Code: Alles auswählen
// libhello.cpp
#include <iostream>
using namespace std;
void print_hello() {
cout << "Hello!" << endl;
}
Code: Alles auswählen
// usehello.cpp
void print_hello();
int main() {
print_hello();
}
Code: Alles auswählen
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ g++ -fPIC -c libhello.cpp
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ g++ -shared -Wl,-soname,libhello.so.0 -o libhello.so.0.0 libhello.o -lc
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ld -sf libhello.so.0.0 libhello.0
ld: unrecognized option '-sf'
ld: use the --help option for usage information
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ll
insgesamt 20
-rw-r--r-- 1 daniel daniel 109 13. Mär 14:50 libhello.cpp
-rw-r--r-- 1 daniel daniel 2440 13. Mär 14:51 libhello.o
-rwxr-xr-x 1 daniel daniel 6903 13. Mär 14:52 libhello.so.0.0
-rw-r--r-- 1 daniel daniel 68 13. Mär 14:51 usehello.cpp
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ln -sf libhello.so.0.0 libhello.so.0
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ln -sf libhello.so.0 libhello.so
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ g++ usehello.cpp -L. -lhello
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ls -lrt
insgesamt 28
-rw-r--r-- 1 daniel daniel 109 13. Mär 14:50 libhello.cpp
-rw-r--r-- 1 daniel daniel 68 13. Mär 14:51 usehello.cpp
-rw-r--r-- 1 daniel daniel 2440 13. Mär 14:51 libhello.o
-rwxr-xr-x 1 daniel daniel 6903 13. Mär 14:52 libhello.so.0.0
lrwxrwxrwx 1 daniel daniel 15 13. Mär 14:53 libhello.so.0 -> libhello.so.0.0
lrwxrwxrwx 1 daniel daniel 13 13. Mär 14:53 libhello.so -> libhello.so.0
-rwxr-xr-x 1 daniel daniel 6924 13. Mär 14:54 a.out
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ./a.out
./a.out: error while loading shared libraries: libhello.so.0: cannot open shared object file: No such file or directory
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ g++ usehello.cpp -L. -lhello -o usehello
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ll
insgesamt 36
-rwxr-xr-x 1 daniel daniel 6924 13. Mär 14:54 a.out
-rw-r--r-- 1 daniel daniel 109 13. Mär 14:50 libhello.cpp
-rw-r--r-- 1 daniel daniel 2440 13. Mär 14:51 libhello.o
lrwxrwxrwx 1 daniel daniel 13 13. Mär 14:53 libhello.so -> libhello.so.0
lrwxrwxrwx 1 daniel daniel 15 13. Mär 14:53 libhello.so.0 -> libhello.so.0.0
-rwxr-xr-x 1 daniel daniel 6903 13. Mär 14:52 libhello.so.0.0
-rwxr-xr-x 1 daniel daniel 6924 13. Mär 14:54 usehello
-rw-r--r-- 1 daniel daniel 68 13. Mär 14:51 usehello.cpp
daniel@daniel-laptop:~/scripts/C++/Einstieg_in_C++/Kapitel06$ ./usehello
./usehello: error while loading shared libraries: libhello.so.0: cannot open shared object file: No such file or directory