• ベストアンサー

必要なコンパイルオプションの調べ方

コンパイルするときにリンクが上手く行かない場合があります。 必要に応じて-lmとか-lsocketとか付ければ良いのですが、必要なオプションを調査する方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

No.2です。manを使えばいいというだけでは、半分しか回答になってないですね。 コンパイルしてみて、どの関数が存在しないかがリンク時のエラーとして出力されるはずです。その関数名をmanで調べるのです。sin() という関数を使っているなら、sin がないとか、OSによっては _sin がないとか言われるはずです。そうしたら、man sin をします。

100Gold
質問者

お礼

ご回答ありがとうございます。 manで分かるんですね。 ありがとうございました。

その他の回答 (2)

回答No.2

OSに依存するので、一般的な法則はありません。が、まともなOSのまともなコンパイラであれば、きちんとドキュメントがあるはずです。UNIXであれば普通はmanコマンドで調べることができます。

  • ejiji_
  • ベストアンサー率24% (9/37)
回答No.1

こちらでいろいろわかりますよ。 内容も濃く、わかりやすい内容だと思います。 ご参考にして下さい。

参考URL:
http://www.sc.tutpse.tut.ac.jp/Member/OB/Kawada/Unix/
100Gold
質問者

お礼

ご回答ありがとうございます。 ちょっと聞き方が悪かったのかもしれませんが、コンパイルに必要なライブラリを調べる方法が知りたいのです。 教えていただいたページには無いようでした。

関連するQ&A

  • コンパイルオプションの書籍

    お世話になります。 C言語を始めたばかりですが、コンパイル、リンクオプションを書いた 本(または、情報)はありませんか。現状、 bcc32 test.c gcc test.c ぐらいでコンパイルしてます。 算術関数を使っていてgccの場合、-lmを着けないとだめというのに かなり時間がかかりました。 borlandとgccの2つがあれば良いのですが、宜しくお願いします。

  • C++ コンパイルオプションについて

    C++標準出力に用いるcoutをコンパイルオプションで 入り切りしたい場合、Makefileにはどのように記述したらいいのでしょうか?また、ソース自体も何か記述する必要はありますか? よろしくお願い致します。

  • RPMパッケージソフトをインストールした場合のコンパイルオプションの調べ方。

    CentOSにてyumでSendmailをインストールしました。 ソースファイルからインストールする場合、いろいろコンパイルオプションがつけれますが、yumでインストールした場合どんなオプションで コンパイルされているのか調べる方法はあるでしょうか? 教えてください。

  • 64bit環境で32bitでコンパイルするオプションはあるのでしょうか?

    WindowsXP x64の環境でVC++2005でコンパイルすると64bitを生成しますが、リンクするモジュールが32bitなので、エラーになります。 fatal error LNK1112: モジュールのコンピュータの種類 ‘X86′ は対象コンピュータの種類 ‘x64′ と競合しています。 強制的に32bitでコンパイルするオプションはあるのでしょうか?

  • Squidのコンパイル時のオプションについて

    Squidをコンパイルする際のオプションについて各オプションの意味をすべて調べているのですが、どうしても--enable-kill-parent-hackというオプションの意味が解りません。どなたかご存じないでしょうか。

  • コンパイルオプションの「-m486」って一体何なんでしょうか?

    コンパイルオプションの「-m486」って一体何なんでしょうか? ざっくりとした質問ですいません。

  • コンパイルでのエラー

    コンパイルというものに不慣れながらも行っています。 リンクなどを変えたのですが、次のようなエラーがでます。 ------------------- can't read archive header from archive libdmy.a ------------------- これは、何が悪いのか判断がつきません。 libdmy.aというファイルを作った段階で間違っているのか、それともオプションの設定がおかしいのかわからなく、困っています。 何か解決する方法などはあるでしょうか?

  • gccコンパイルの「o」オプションについて教えて下さい

    こんにちは。 C++を勉強しだしたばかりの弱小物です。 g++でコンパイルする場合に、 oオプションを使用して、 オブジェクトファイルをリネイムしているケースを拝見する場合があるのですが、 何のためにリネイムするものなのでしょうか? なぜ、わざわざリネイムしようとするのか、 その場面が分からないでいます。 ------------------ a.out: c.o cpp.o g++ -o a.out c.o cpp.o ------------------ なんてのを見たりします。 どうゆうシチュエーションで、 意図を持って「o」オプションを使っている流れでしょうか。 以上アドバイスいただけるとありあがたいです。 どうぞ宜しくお願い致します。

  • EclipseでJSR14を使うには(または、コンパイルオプションを指定するには?)

    Eclipse3.5.1で Java1.4の開発でもJava1.5のジェネリクスや列挙型を使えるようにする -target jsr14を使うためにはどうすればいいでしょうか? ちょっとプロジェクトのプロパティを見た限りでは、jsr14を使うように指定する機能がないように見えます。 コンパイルオプションが、コマンドラインでコンパイルするときにように指定できれば、それでもいいんですが。

  • VS 2010 のコンパイルオプション

    Visual Studio 2010 Pro. でC++のプログラムを書いています。 速度をあげようと、コンパイルオプション /Ox を付加したいと思って    http://msdn.microsoft.com/ja-jp/library/59a3b321.aspx を見ているのですが、    2. [C/C++] フォルダーをクリックします。 の[C/C++] フォルダーとはどこにあるのか見つけることができません。 [プロパティ ページ] ダイアログ ボックスのどこに[C/C++] フォルダーあるのでしょうか? よろしくお願いします。

専門家に質問してみよう