• 締切済み

C言語 コンパイルエラー LNK1136

以前http://oshiete1.goo.ne.jp/qa4632602.htmlで質問して、ライブラリの設定ができていないのではということを指摘され、ライブラリの設定をしましたが、 「LNK1136:ファイルが無効であるか、または壊れています。」 というコンパイルエラーがでました。 自分で、プロジェクト>プロパティ>構成プロパティ>リンク>入力>追加の依存ファイルにライブラリを入れました。 やり方が違うのでしょうか? 本当に壊れているのかと思い、ライブラリファイルを入れなおしてみましたが変わりませんでした。 環境:visual studio 2005、WindosVista Ultimate 32bit

みんなの回答

  • php504
  • ベストアンサー率42% (926/2160)
回答No.4

前の質問で visa.h をインクルードしてるようですがそれなら追加するのは visa32.lib ではないでしょうか

xyz203
質問者

お礼

解答ありがとうございます。 visa32.libをいれると、「_StringLength関数が _main で参照されました」というエラーが出たのでライブラリファイルが違うのかなと思ったしだいです。

回答No.3

>メーカーからダウンロードしたファイルのlibフォルダに入っていた物を片っ端から追加の依存ファイルに入れました。 http://msdn.microsoft.com/ja-jp/library/6azkch2c(VS.80).aspx は自動翻訳なので「日本語が変」ですが、このページが言いたい事は 「追加の依存ファイルに、.libファイル以外の、リンカがライブラリファイルとして認識出来ないファイルを指定した場合にも発生します」 と言う事。 つまり「libフォルダに入っていた物を片っ端から追加の依存ファイルに入れた」のが原因。 libフォルダには「#includeに使う.hファイルや説明書などの.txtファイルなど、.libファイル以外の、リンカがライブラリファイルとして認識出来ないファイル」も含まれてるから、片っ端から追加の依存ファイルに入れてはいけない。 追加で入れたのを全部「無し」にして「拡張子が.libのファイルだけ」を入れ直しましょう。

xyz203
質問者

お礼

回答ありがとうございます。 .libのものを入れてもうまく動きませんでした。 メーカーに聞いたところサンプルプログラムの変数宣言が違ったようです。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

追加の依存ファイルに入れたファイル名はなんでしょうか 追加されたファイルがライブラリではないようです

xyz203
質問者

お礼

回答ありがとうございます。 ファイル名はbcsicl32.libです。 メーカーからダウンロードしたファイルのlibフォルダに入っていた物を片っ端から追加の依存ファイルに入れました。

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.1

エラーの内容と環境からの推測です。 まず、エラーの内容が言っているのは 「入力ファイルのヘッダーが破損している。」とか 「追加しているファイルの依存関係がおかしい」 というようなことらしいです。 http://msdn.microsoft.com/ja-jp/library/6azkch2c(VS.80).aspx その内容から推測すると、 ・「追加の依存ファイル」への追加した順序がおかしい。 ・「追加の依存ファイル」に追加したファイルがおかしい。 つまり、コンパイラ側は「拡張子が.oのオブジェクトファイル」が欲しいのに ソースファイル(.c)やライブラリファイル(.lib)などの 間違ったファイルが突っ込まれていたり、 必要なファイルが間違った場所に格納されている。 あるいは、最初にエラーとなった状態のままとなっていて ・入れ直した操作が再コンパイルに反映されていない。 ということが考えられます。 なので、ライブラリファイル、オブジェクトファイルなどの格納場所を確認し、 完全ビルド(っていうのでしょうか?)を行ってみるとよいのではないでしょうか。

xyz203
質問者

お礼

回答ありがとうございます。 >>間違ったファイルが突っ込まれていたり メーカからダウンロードしたファイルのlibフォルダのものを入れましたがこれが違うということですね。もう一度調べてみます。

関連するQ&A