2

ああ...私は最近、Visual Studio 2010(VC ++)にプロジェクトで使用したいサードパーティのライブラリをたくさん含めるのに苦労しています。それが問題です。リンカーは、サードパーティのライブラリ定義から取得した、コードで生成されたすべてのシンボルを判別できないようです。インクルードディレクトリにヘッダーファイルのパスをインクルードし、ソースディレクトリにソースパスもインクルードしましたが、まだ機能していません。私はしばらくの間それをグーグルで検索しましたが、ほとんどの場合、問題はリンカーの追加の依存関係で.libファイルの参照が欠落していることが原因ですが、ライブラリには付属していません。

サンプルコードは次のとおりです。

#include "stdafx.h"
#include <fuzzylite\FuzzyEngine.h>

int _tmain(int argc, _TCHAR* argv[])
{
    fl::FuzzyEngine eng;
    return 0;
}

これがVSが示す出力です

Fuzzycolors.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall fl::FuzzyEngine::~FuzzyEngine(void)" (??1FuzzyEngine@fl@@UAE@XZ) referenced in function _wmain
Fuzzycolors.obj : error LNK2019: unresolved external symbol "public: __thiscall fl::FuzzyEngine::FuzzyEngine(void)" (??0FuzzyEngine@fl@@QAE@XZ) referenced in function _wmain

ですから、サードパーティライブラリの.hファイルと.cppファイルを使用してソースを構築する方法はあるのでしょうか。ありがとうございました。

カイオ

4

1 に答える 1

0

http://www.fuzzylite.comで fuzzylite-2.0 の新しいバージョンを確認してください。その問題は解決されました。

__declspec(dllexport)Windows では、以前のバージョンには存在しなかったクラスに追加する必要があります。現在、すべてのクラスは で始まります。ここでclass FL_EXPORT Engine、 にFL_EXPORTは定義がありません。

于 2013-03-27T11:25:22.713 に答える