Muss die Linker-Option -Wl,-rpath-link=dir für alle erforderlichen Suchpfade für Bibliotheksabhängigkeiten angegeben werC++

Programme in C++. Entwicklerforum
Anonymous
 Muss die Linker-Option -Wl,-rpath-link=dir für alle erforderlichen Suchpfade für Bibliotheksabhängigkeiten angegeben wer

Post by Anonymous »

Ich habe die folgende Projektstruktur, wobei libb.so von liba.so abhängt, libc.so von libb.so abhängt und libd.so von libc.so abhängt

Code: Select all

abcd
├── a
│   ├── lib.cpp
│   ├── lib.o
│   └── liba.so
├── b
│   ├── lib.cpp
│   ├── lib.o
│   └── libb.so
├── c
│   ├── lib.cpp
│   ├── lib.o
│   └── libc.so
└── d
├── lib.cpp
├── lib.o
└── libd.so
Ich kompiliere alle oben genannten Bibliotheken wie folgt

Code: Select all

liba.so

Code: Select all

gcc -c -Wall -fPIC lib.cpp
gcc -shared -o liba.so lib.o

Code: Select all

libb.so

Code: Select all

gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libb.so lib.o -L../a -la

Code: Select all

libc.so

Code: Select all

gcc -c -Wall -fPIC lib.cpp
gcc -shared -o libc.so lib.o -L../b -Wl,-rpath-link=$(pwd)../a -lb

Code: Select all

libd.so

Code: Select all

gcc -c -Wall -fPIC lib.cpp
Für die Generierung von libd.so, welcher der folgenden Befehle ist der richtige? Derzeit erstellen beide Befehle libd.so, würden aber gerne die idiomatische Version kennen.

Code: Select all

gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -Wl,-rpath-link=$(pwd)../a -lc
Oder

Code: Select all

gcc -shared -o libd.so lib.o -L../c -Wl,-rpath-link=$(pwd)../b -lc

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post