2016-12-06 4 views
1

の静的ライブラリにリンクすることはできません、私は2015年C++ - VS2015

のVisual Studioで、外部の静的ライブラリ(基本的に .libファイルと .hヘッダファイル)に私のプロジェクト(C++コンソールアプリケーション)をリンクしようとしています

は私が

    に、プロジェクトのプロパティの下で、(.LIBファイルのみを含むプロジェクトのルートフォルダの下に、私が作成した特定のフォルダ) .libを含むフォルダのパスを追加しました
  1. "C/C++ - 一般 - 追加インクルードディレクトリ"
  2. "リンカ - 一般 - 追加のライブラリディレクトリ」

そして、私はまた、にファイル名に追加した 『リンカ - 入力 - 追加の依存を』。 テストとして、私は間違ったファイル名を指定しようとしました - これはエラー(正しい名前が指定されている場合は発生しません)を引き起こしました。何らかの理由で

、私は私の main.cppファイルにライブラリヘッダー( .hファイル) #includeたら、 「システムエラー」 accures -

external_dll.dllが欠落しているため、起動できませんプログラムお使いのコンピュータ[..]何らかの理由で

から、リンカは#include Dヘッダーの名前に基づいて、.dllファイルを探します - 私はSTATでプロジェクトをリンクしたという事実にもかかわらず、 ICライブラリー(.libファイル)。

この.dllファイルは、勿論存在しません。

ここに何か不足していますか?

+0

ライブラリの名前を書くことはできますか? –

答えて

0

あなたのアプリケーションはDLLファイルを見つけることができません。最も簡単な解決策は、exeファイルを含むフォルダにそのDLLを置くことです。

+0

dllはありません - それが全体のポイントです。質問を読む。 – golosovsky

+0

明らかに、静的ライブラリは静的にあなたのアプリケーションをあなたのケースでいくつかのDLLにリンクします。 @styleoverflow.com/questions/424032/how-to-link-a-dll-statically –

+1

@golosovsky - あなたは確かに_確かに、DLLではないと確信していますか? **多くの** DLLベースのライブラリには、.h(コンパイル時)、.lib(リンク時)、および.dll(実行時)が付属しています。これらの場合、HとLIBはDLLをロードし、必要なprocアドレスを取得し、ABIの問題を処理する単純なラッパーですが、DLLは実行時には依然として必要です。 –

1

folllowingの場合はそうである: -

「何らかの理由で、リンカはインクルードヘッダの名前に基づいて、.dllファイルを探します - 私はプロジェクトをリンクしたという事実にもかかわらず、静的ライブラリ(.libファイル)。 "

この機能を無効にする方法があるはずです。私はVS2015のプロジェクト設定で、リンカーにdllファイルの対応するdll #includeヘッダーファイルを探すのを止めることができるはずです。

また、フィールドも除外されています。上記を実行できない場合は、出てくるdllファイルを除外してそこから取得してみてください。

関連する問題