OS X で GCC を使用して、複数の静的ライブラリから共有ライブラリを作成したいと考えています。
一部の静的ライブラリでは、共有ライブラリにそれを呼び出すコードがありません。これらの静的ライブラリのシンボルをエクスポートしたいだけです。これはデバッグ モードでは機能しますが、リリース モードでは機能しません (特にデッド コード ストライピングを有効にした場合)。理由は理解できます.gccは、静的ライブラリのこれらの関数は決して使用されないと考えています. しかし、gccにこれらのシンボルを強制的に含めるにはどうすればよいですか?
ローダーに -u オプションを追加しようとしましたが、「ローカル」シンボルしか生成されません。リンカにエクスポート シンボルを生成させる方法は?
また、MSVC のように、リンカー ディレクティブをソース コードに追加する方法があるかどうか疑問に思っています。#pragrma comment(linker, "/INCLUDE:xxxx")
私が静的ライブラリで定義した関数は次のようなものです:
extern "C"
void test() {}
前もって感謝します!-ジョニー