アプリ版:「スタンプのみでお礼する」機能のリリースについて

GLUTを使用したCプログラムをBCCでコンパイルしたのですが、実行ファイルが生成されてもライブラリが静的リンクされません。
コンパイルオプションとして、

> bcc32 *.c glut32.lib glu32.lib winmm.lib

とlibファイル名のリストを与えているのですが……
当然ながら、bcc32.cfgとilink32.cfgの環境変数でlibファイルへのパスは与えてあります。

A 回答 (2件)

bcc32のコマンドラインでライブラリファイルの指定を行うことには全く問題ありません。



ただし、質問の例で指定されている

  glut32.lib
  glu32.lib
  winmm.lib

はいずれも、

  glut32.dll
  glu32.dll
  winmm.dll

への動的リンクを作成するためのインポートライブラリのようです。インポートライブラリを指定すると、生成されたEXEはDLLを要求します。

静的リンクを行うのであれば、インポートライブラリではなくオブジェクトライブラリを指定する必要があります。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

ライブラリの同梱はできていたものの、
ライブラリファイルそのものが静的リンク対象として不適だったのですね。
今回の件は勉強になりました。どうもありがとうございました。

お礼日時:2005/09/07 09:20

> bcc32 *.c glut32.lib glu32.lib winmm.lib



普通、こんなざっぱなコンパイルはしないと思うけど。
ちゃんとmakeを書いて各オブジェクトファイルをコンパイルしてからリンクさせる方が見易いと思う。

BCCはしらないけど、とりあえず静的リンクしたいなら静的リンクのオプションがあるはず。bcc32のオプションになくてもリンカ(ilink32)の方にあるはずだからbcc32でilink32にオプションを受け渡す方法とともにマニュアルで確認して設定すること。
    • good
    • 0
この回答へのお礼

御回答ありがとうございます。

御指摘の件ですが、ilink32ではリンク実行時にコマンド引数として
同梱するライブラリのファイル名を記述することで
静的リンクできるとマニュアルには記載されていました。
ところが、このようにして実行ファイルを生成しても、
リリース先の環境でDLLを求められてしまい、静的リンクができていません。
makefileを作成しても同じ結果となりました。

さらにwebで検索したところ、bcc32を実行する時点で
ライブラリをコマンド引数として与えても静的リンクできた
という報告まであり、すっかり訳が分からなくなってしまった次第です。

お礼日時:2005/09/06 17:03

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