Trovo che il flag -L deve essere dato quando si utilizza -rpath. Ad esempio:Perché è necessario -L quando si utilizza -rpath?
gcc -o test test.o -L. -lmylib -Wl,-rpath=.
Perché è necessario il flag -L? Quali informazioni oltre alle informazioni dai file h sono necessarie al compilare il tempo?
Se rimuovo -L. Viene visualizzato il seguente messaggio:
gcc -o test test.o -lmylib -Wl,-rpath=.
/usr/bin/ld: cannot find -lmyLib
Tuttavia, è assolutamente corretto rimuovere entrambe le bandiere. Come questo:
gcc -o test test.o -lmylib
A condizione che libmyLib può essere trovato in/usr/lib, che è. Perché non è necessario -L ora?
Questa è una domanda successiva a https://stackoverflow.com/a/8482308/1091780.
Un linker non ha idea di cosa siano questi stupidi "file h". –