libx.a には、何もしない関数 x() が 1 つだけあります。
liby.a には、何もしない y() と libx.a の x() を呼び出す yx() の 2 つの関数があります。
次に、関数 main() で liby.a の y() を呼び出す main.c があります。リンク ジョブを実行するときは、libx.a を追加する必要があります。そうしないと、gcc が「x」への未定義の参照というエラーを表示します。しかし、私は libx.a とは何の関係もない y() を使用しています。
私の場合、gccにlibx.aを無視させる方法はありますか? 言い換えれば、gcc は libx.a が本当に必要な場合にのみ libx.a を要求できますか?
libpthread.a と libmysqlclient.a で実行できます。libpthread と libmysqlclient を使用する libm.a があります。libm.a の空の関数のみを呼び出す main.c を作成しました。gcc はリンク時に libpthread.a と libmysqlclient.a を要求しません。libpthread/libmysqlclient と私の liby.a の違いは何ですか??