必要なすべてのシンボルを見つけるために特定の順序でリンクする必要があるいくつかのオブジェクト ファイルを使用する C プロジェクトがあります。
たとえば、このコマンドは正常に機能します (lib2.o は lib1.o に依存するなど)。
gcc -o my_app main.o lib1.o lib2.o lib3.o -lm
しかし
gcc -o my_app main.o lib3.o lib2.o lib1.o -lm
`my_variable' エラーへの未定義の参照で終了します。
これは既知の動作であり、たとえばこれらのオブジェクトをリンカー スクリプトの GROUP セクションに追加することで解決できます。
これらのオブジェクトをスタティック ライブラリとして同僚と共有したいと思います。そう...
ar -rcs mylib.a lib1.o lib2.o lib3.o
gcc -o my_app main.o mylib.a -lm
残念ながら、これにより、オブジェクトを間違った順序で指定するなど、同じ未定義の参照エラーが発生します。
この問題が比較的一般的であると思われる場合でも、それを機能させるためのリンカまたはアーカイバのオプションは見つかりませんでした。また、グーグルによる解決策もありません。
誰か解決策を教えてください。
よろしく1月