so_internalize ディレクティブ
このセクションの内容:
構文
so_internalize symbol [,symbol...];
パラメータ
| 共有オブジェクトに追加する(参照だけではなく)、標準ライブラリのシンボルの名前。 |
説明
他者がシンボルを提供するのを待つのではなく、このディレクティブまたは--so_internalizeリンカオプションを使用して、標準ライブラリから共有オブジェクトにシンボルを追加します。
共有オブジェクトで定義されていないシンボルは、通常インポートされたシンボルになります。--so_importリンカオプションまたはso_importディレクティブを使用して指定しない限り、エラーが発生します。
追加したシンボルがほかのシンボルを参照する場合は、これらのシンボルは自動的に追加もされません。外部のシンボルにしない場合は、同じ方法で追加する必要があります。
このディレクティブを使用すると、標準ライブラリのどのシンボルを共有オブジェクトに追加するかを正確に制御できます。指定したシンボルは共有オブジェクトの一部になります。このディレクティブで指定されない標準ライブラリ参照は、共有オブジェクトの外部参照になります。
例
so_internalize memcpy;
これは、標準ライブラリシンボルmemcpyを共有オブジェクトに追加します。あたかも入力ファイルにコードが含まれているかのような効果が得られます。この方法で追加されたシンボルは、so_exportディレクティブを使用してエクスポートできます。