次のような問題に対処しようとしています。
以下から作成されたライブラリ libxyz.a があるとします。
/* main.c */
int main(void)
{
int a;
}
以下を使用してコンパイルおよびアーカイブ:
gcc -c main.c -o abc.o && ar cr libxyz.a abc.o
abc.o を期待される場所に正確に配置するには、リンカー スクリプトをどのように作成する必要がありますか?
私はそのような方法でそれを処理しようとしていました:
/* script.ld */
SEARCH_DIR(.)
INPUT(-lxyz)
SECTIONS
{
.text : { xyz:abc(.text) }
.data : { xyz:abc(.data) }
.bss : { xyz:abc(.bss) }
}
しかし、実行後:
ld -T script.ld
私は得る:
ld: cannot find xyz:abc
フォーラムのリンカー ファイルでアーカイブを抽出する例は見つかりませんでした。私が見つけた唯一のものは、構造に関する情報のみを含むリンカのドキュメントでしたarchive:file
。