前提・実現したいこと
静的ライブラリlibA.aがあり、共有ライブラリlibB.dllに依存しています。
下記の構成で実行ファイルを作成し、ビルド・実行ともに正常に行えることを確認しています。
今回、静的ライブラリlibAを共有ライブラリに変換したいと思っています。
. ├── test.cpp ├── libA.a └── libB.dll
g++ test.cpp -L. -lA -lB
試したこと
https://stackoverflow.com/questions/2193944/convert-a-static-library-to-a-shared-library-create-libsome-so-from-libsome-a
少々古いですが、上記を参考に下記のコマンドを実行しました。
g++ -shared -o libA.dll -Wl,--whole-archive libA.a -Wl,--no-whole-archive libB.dll
libA.dllは生成されましたが、これをリンクしてビルドしようとすると、"undefined reference to [libA内の関数]"のエラーが出てビルドに失敗します。
補足情報(FW/ツールのバージョンなど)
MSYS2 64bit
mingw-w64-x86_64-gcc 9.2.0-2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/19 02:51