54053


gccのコンパイル時に、ライブラリディレクトリ、/usr/lib/内のサブディレクトリ内は自動的に検索されるのでしょうか？  
また、別の場所にあるディレクトリのシンボリックリンクを/usr/libに置いた場合、検索されるでしょうか？  
あるいは、ld.so.confなどで明示的に指定する必要があるでしょうか？

よろしく、お願いいたします。


CC BY-SA 4.0
2019-04-09T09:49:13.497
54048
2019-04-09T11:19:37.393
15090
question
gcc dll
gccのライブラリディレクトリ検索


「`gcc` のコンパイル」というのは `gcc` 自体のソースコードをコンパイルするとき（商用 Unix 付属コンパイラで）の話なのか、それとも
`gcc` を使って自分の書いたソースファイルをコンパイルするときなのか、どちらかよくわかりませんが

Q1. `/usr/lib` のサブディレクトリは検索対象か  
A1. いいえ

Q2. `/usr/lib` 内に symlink を置いたらどうなるか  
A2. 検索対象になります（が、激しくお勧めしません。 `/usr/lib` 以下はベンダの提供する更新ツール以外で変更しないでください。 Unix
を壊す原因になる）

Q3. 明示的に指示する必要があるか  
A3. `/usr/lib` 以外を探させたいなら、必要があります。ライブラリを検索するディレクトリを追加する目的には `gcc -Ldir`
を使えばよいので、こっちをお勧めします。

[code]

    $ gcc -o myapp myapp.o -L/usr/local/lib -lmyown
    
[/code]

で `/usr/local/lib/libmyown.a` や `/usr/local/lib/libmyown.so` を探してくれます。

よくできている `Makefile` なら（ソースレベルで提供されているツールはたいてい対応済みです）環境変数 `CC` や `CFLAGS` や
`LDFLAGS` でいろいろ設定を追加変更できますので、使ってみると吉。


CC BY-SA 4.0
2019-04-09T11:19:37.393
54053
2019-04-09T11:19:37.393
8589
54048
answer