これが状況です。私は多くの場所で壊れている古いレガシーライブラリを持っていますが、多くの重要なコードが組み込まれています(ソースはなく、lib +ヘッダーだけです)。このライブラリによって公開される関数は、「特別な」方法で処理する必要があります。後処理や前処理が行われると、問題が発生します。私が考えているのは、この古いライブラリを使用して、「安全」な新しい関数のセットを公開する別のライブラリを作成することです。
私はすぐにこの新しいライブラリを作成してみて、それをメインプログラムにリンクしました。ただし、新しいライブラリを通じて公開されている古いライブラリのシンボルには引き続きリンクしています。
当然、これらの機能を使わないようにお願いすることもありますが、安全な機能だけを公開して、なんらかの方法で隠すことができれば、さらに良いでしょう。
出来ますか?代替案?
(ARMマイクロコントローラーで実行されています。ファイル形式はELFで、OSはKeilのコンパイラを使用したRTOSです)
[アップデート]
最終的に行ったことは次のとおりです。古いライブラリと同じプロトタイプを使用するダミー関数を新しいライブラリ内に作成しました。新しいライブラリをメインプログラムにリンクしました。他の開発者が古いライブラリの「不良」関数を使用しようとすると、「シンボルabcd乗算定義(old_lib.oおよびnew_lib.o)」でビルドが中断されます。政府の仕事には十分です...
[update2] IDE = Pを介してライブラリのコンポーネントをリンクするときに、ライブラリのコンポーネントを手動で非表示にできることが実際にわかりました。これははるかに優れたソリューションです。ここでスペースを取ってすみません。