• ベストアンサー

コンソールプログラムで使用するライブラリについて

今まで疑問に感じつつないがしろにしていた部分なんですが、 例えばWin32APIを使用してプログラミングする時にコンパイラはリンクの際にwindowsのシステムフォルダ内にあるdllファイルを参照してリンクするんですよね(あってます?)?ではコンソールプログラム(dos上のプログラム)をリンクする際にはどうなるのでしょうか(例えばCの標準関数のライブラリはどこにあるのでしょうか?)? 私の予想では標準関数に関してはコンパイラが予め用意している静的ライブラリを使ってリンクしているんじゃないかと思うのですが実際どうなんでしょうか? 大した質問でもないのに長々とした文章になってしまいましたがよろしくお願いします。

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

  • ベストアンサー
  • kaha
  • ベストアンサー率23% (41/177)
回答No.2

> 例えばCの標準関数のライブラリはどこにあるのでしょうか? Borland C++Compiler 5.5の場合  C:\borland\bcc55\Lib Visual C++ 6.0の場合  C:\Program Files\Microsoft Visual Studio\VC98\Lib APIで使われれるライブラリも同じ場所にあると思います。 > コンソールプログラム(dos上のプログラム)をリンクする際 コマンドラインで実行する場合、「bcc32 ソースファイル」「cl ソースファイル」のようにコンパイルとリンクを同時に行う場合には標準ライブラリの指定を省略することが可能ですが、コンパイルとリンクを別々に実行する場合はリンクコマンドで標準ライブラリの指定が必要です。 「c0x32.obj cw32mt.lib import32.lib」、「kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib」など。

その他の回答 (2)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

>リンクの際にwindowsのシステムフォルダ内にあるdllファイルを参照してリンクするんですよね 違います。リンク時は参照しません。 dllの情報を持ったライブラリをリンクします。 場所は既に回答されている通りです。

  • kaha
  • ベストアンサー率23% (41/177)
回答No.1

> 例えばCの標準関数のライブラリはどこにあるのでしょうか? Borland C++Compiler 5.5の場合  C:\borland\bcc55\Lib Visual C++ 6.0の場合  C:\Program Files\Microsoft Visual Studio\VC98\Lib APIで使われれるライブラリも同じ場所にあると思います。 > コンソールプログラム(dos上のプログラム)をリンクする際 コマンドラインからでは「bcc32 ソースファイル」「cl ソースファイル」でコンパイルとリンクを同時に行う場合には標準ライブラリの指定を省略することが可能ですが、コンパイルとリンクを別々に実行する場合はリンクコマンドで標準ライブラリの指定が必要です。 「c0x32.obj cw32mt.lib import32.lib」、「kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib」など。