gccのリンカオプションで引数を渡す方法
gccのリンカオプションで引数を渡す方法を紹介します。
1.問題点
gccに下記のようなマップを出力するオプション(リンカオプション)を付与したいと思っています。
-Map /home/foo/map.txt
-Mapオプションの引数として、出力するファイルのパス・ファイル名(/home/foo/map.txt)を指定します。
とりあえず-Wlオプションに次のように付与してみました。
$ g++ -Wl,-M /home/foo/map.txt test.cpp
が、このまま付与すると、
g++: エラー: /home/foo/map.txt: そのようなファイルやディレクトリはありません
と、正常に認識されません。
ということで、gccのリンカオプションで引数を渡す方法を紹介します。
2.gccのリンカオプションで引数を渡す
gccのリンカオプションで引数を渡すには、下記の2通りがあります。
まず、-Wlオプションで渡す方法です。
$ g++ -Wl,-Map,/home/foo/map.txt test.cpp
-Wlオプションの最初のカンマの後"-Map,/home/foo/map.txt"が、リンカに渡すオプションです。
また、2つめのカンマは複数のオプションとして分割されます。
もう一つの方法は-Xlinkerオプションで渡す方法です。
$ g++ -Xlinker -Map -Xlinker /home/foo/map.txt test.cpp
-Xlinkerオプションで引数を持ったオプションをリンカに渡したい場合は、-Xlinkerを2回使用します。
Posted by yujiro このページの先頭に戻る
トラックバックURL
コメントする
greeting