ライブラリの依存関係
main.cがlibtest1.aに依存し、
libtest1.aがlibtest2.aに依存している場合のビルドは、
gcc main.c -ltest1 -ltest2
依存先を後ろにつけます。
では、ライブラリが双方向(相互)に依存している場合はどうするのか?
これまた、
gcc main.c -ltest1 -ltest2
でもいけるし、
gcc main.c -ltest2 -ltest1
でもいけちゃう。
「依存先は後」の法則(?)に忠実に、
gcc main.c -ltest1 -ltest2 -ltest1
とする必要はない(もちろんこれでも通る)。
この場合だと、
gcc main.c -ltest2 -ltest1
はリンクエラーで、
gcc main.c -ltest1 -ltest2
ならOK.
とりあえず、依存矢印の順にライブラリを指定していけばいいのかな。。。
リンク(リンカ)の仕組みをまったくしらないから、すっきりしない。
ちょっとずつ勉強していきたい〜
まぁ、ペイントでUMLを書くと意外に楽しいってことが分かっただけでも(^^;