私はこのMFCアプリケーションに、組み込みのデータベースを必要としています。だから私はそれのための滑らかで、速い "embeddable"データベースを狩りに行って、SQLiteを渡り歩きました。"エラーLNK2019:未解決の外部シンボル"を解決するにはどうすればよいですか?
私はそれを使ってDBを作成し、Visual Studio 2008でスタティックライブラリプロジェクトを作成しました。ライブラリプロジェクトは別のメインプロジェクトで使用されます。
ライブラリプロジェクトでは、AddFeedToDB(CFeed f)
というメソッドでクラスDBClass
を作成しました。ライブラリプロジェクトでは、codeproject(cppsqlite3.lib
)の.lib
ファイルが使用されます。
静的ライブラリをコンパイルする場合、誤りが検出されなかったが、私はメインプロジェクトにライブラリプロジェクトファイルを使用しようとすると、私はエラーのこれらの種類を取得:
error LNK2019: unresolved external symbol "public:void __thiscall
CppSQLite3DB::close(void)" ([email protected]@@QAEXXZ
referenced in function "public: int __thiscall
CTalkingFeedsDB::AddFeedToDB(class CFeed,char const*)" (?
[email protected]@@[email protected]@[email protected]
は、私が何をしないのですか?
これは所定の質問に答えますか? – ST3
@ ST3:明らかに、この特殊なケースを解決しました。リンカのエラーを解決するための一般的なレシピではありません。 – xtofl
はい、この行を追加すると、私の(同様の)問題も解決されました。実際に起こっているのは、エクスポートされていない別のDLL(通常はMSVS)で定義されたシンボルが必要なプロジェクトがあることです。 –