Visual Studio 2008 を使用して、サード パーティのライブラリでプロジェクトをコンパイルしようとしています。ここで、lib ファイルを LINKER 入力に追加し、追加のライブラリの場所を更新しました。lib ファイルが実際に読み取られていることを確認してください (削除された追加の場所とコンパイルは失敗し、lib ファイルが見つからないと叫びました)。ライブラリに存在するエクスポートを dumpbin で確認しましたが、機能は存在します。
それでも、そのライブラリから関数を呼び出すと、エラー LINK2019 unresolved bla bla bla が発生します。誰かが似たようなことに直面した/何か考えがありますか? 私が使用しようとしているライブラリは、VS2003 を使用してコンパイルされたようです。
更新: ライブラリ ヘッダーに表示される定義:
#ifndef X
#define X
#ifdef _cplusplus
extern "C" {
#endif
_XFUNC int X_Open(int C);
#ifdef _cplusplus
}
#endif
#endif
そして、エクスポートの定義: (ライブラリ ヘッダーに含まれる別のヘッダーで)
#ifdef _BUILDXDLL
#define _XFUNC __declspec (dllexport)
#else
#ifdef WIN32
#define _XFUNC __declspec (dllimport)
#else
#define _XFUNC
#endif
#endif
完全なエラー メッセージ:
error LNK2019: unresolved external symbol _X_Open referenced in function "public virtual bool __thiscall MyClass::initialise(class QDomElement*)"(?initialise@MyClass@@UAE_NPAV QDomElement @@@Z)
関連するかどうかはわかりませんが、宣言は*X_Open*であり、エラー メッセージでは *_X_Open* と表示されます。よろしくお願いし ます。Anorflame