0

次のエラーが表示されます。

1>test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall     std::basic_ofstream<char,struct std::char_traits<char> >::`vbase destructor'(void)" (__imp_??_D?  $basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ) referenced in function _main
1>test.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall    std::basic_ofstream<char,struct std::char_traits<char> >::basic_ofstream<char,struct std::char_traits<char>>(void)" (__imp_??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ) referenced in function _main

このテスト コードは正常に動作します。

int main(int argc, char **argv)
{
    std::ofstream game_record_output;
}

VS 2003 .NET から変換された古いプロジェクトの .h を含めるまで

まず、これに関連する問題がある可能性があると思いました:

http://msdn.microsoft.com/en-us/library/8h8eh904(v=vs.90).aspx

しかし、その後、MSVCRT.LIBとMSVCPRT.LIBだけがリンクされていることを確認したので、古いiostreamはリンクされていません...

インクルードチェーンに間違ったファイルが含まれていると思いますが、古い iostream .h のファイル (つまり (fstream.h, iomanip. h、ios.h、iostream.h、istream.h、ostream.h、streamb.h、および strstrea.h) )

それで、他に確認すべきことはありますか?

プロジェクトは MFC を使用します。

4

2 に答える 2

0

これに従って、Visual Studio プロジェクトPropertiesの設定を変更します。C/C++ -> Code Generation -> Runtime Library

  • デバッグ構成用のマルチスレッド デバッグ DLL (/MDd)
  • リリース構成用のマルチスレッド DLL (/MD)
于 2012-05-11T10:41:16.660 に答える
0

このページには、LNK2019 のいくつかの原因が含まれています: https://msdn.microsoft.com/en-us/library/799kze2z.aspx。特に、VS 2003 からアップグレードすると、この問題が発生する可能性があります。

ビルドの依存関係は、ソリューション内のプロジェクトの依存関係としてのみ定義されます。以前のバージョンの Visual Studio では、このレベルの依存関係で十分でした。ただし、Visual Studio 2010 以降、Visual Studio にはプロジェクト間の参照が必要です。プロジェクトにプロジェクト間参照がない場合、このリンカー エラーが発生することがあります。プロジェクト間の参照を追加して修正してください。

またはこれ

ネイティブの wchar_t を使用するコードと使用しないコードを混在させます。Visual C++ 2005 で行われた C++ 言語準拠作業により、既定で wchar_t がネイティブ型になりました。以前のバージョンの Visual C++ を使用してコンパイルされたモジュールと互換性のあるコードを生成するには、/Zc:wchar_t- コンパイラ オプションを使用する必要があります。すべてのモジュールが同じ /Zc:wchar_t 設定を使用してコンパイルされていない場合、型参照が互換性のある型に解決されないことがあります。使用されている型を更新するか、コンパイル時に一貫した /Zc:wchar_t 設定を使用して、すべてのモジュールの wchar_t 型に互換性があることを確認します。

于 2015-06-29T16:44:15.410 に答える