重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Linuxの初心者です。
VMwareで動作するFedoraCoreで組込ソフトを開発しようとしています。

arm-linux-gcc -print-file-name=crt1.o を実行すると
crt1.o とファイル名だけ表示されます。
書籍等では /usr/lib/crt1.o と絶対パスで表示されると書かれているのですが
-print-file-name でパスが表示されないのは何か設定不足があるのでしょうか?

こちらで行ったのはprofile.dにarm-linux-gccのbinとusr/binにパスを設定するファイルをおいただけです。

超初歩的なミスなのかもしれませんが、知恵を貸して頂けると幸いです。

A 回答 (1件)

> 書籍等では /usr/lib/crt1.o と絶対パスで表示されると書かれているのですが


> -print-file-name でパスが表示されないのは何か設定不足があるのでしょうか?

そういうものです。

gcc -print-file-nameはgcc -print-search-dirsで表示されるディレクトリを順
に検索し、見つかったファイルを表示します(asとldだけはコンパイル時に指定
された特別なディレクトリを真っ先に検索します)。検索パス上に見つからない
場合はそのままの値を返します。

crt1.oは検索パス上にないのでcrt1.oと表示されます。それは正しい動作です。
書籍の結果が違うのはバージョンの問題なのか誤植なのか・・・。
そういったところです。

この回答への補足

ありがとうございます。
-print-search-dirsで調べたらcrt1.oのあるフォルダは検索対象になっていませんでした。
ちなみに検索パスには後で追加は出来ないのでしょうか?
crt1.oは必ず必要なものだと思いますので -Lオプションでライブラリのパスを指定しなくてもリンク出来る様にしたいのですが・・・

補足日時:2011/03/26 12:42
    • good
    • 0
この回答へのお礼

-print-search-dirs で表示されるフォルダにcrt1.o等のリンクエラーになるファイルをコピーしたら正常にリンクが通りました。
ありがとうございました。

お礼日時:2011/03/27 14:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!