代码之家  ›  专栏  ›  技术社区  ›  Josh Bradley

错误LNK2019:未解析的外部符号

  •  4
  • Josh Bradley  · 技术社区  · 16 年前

    int SQLServer::CalculateProbabilityResults(int profile, int frame, int time_period, int TimeWindowSize) {
        ofstream ResultFile;
        stringstream searchFileName;
        stringstream outputName;
        vector<vector<int>> timeFrameItemsets;
        int num = getTimeFrameFile(frame*TimeWindowSize, TimeWindowSize);
        cout << num << endl;
    
        //outputName << "Results" << getTimeFrameFile((frame*TimeWindowSize), TimeWindowSize) << ".csv";
        cout << outputName.str() << endl;
        outputName.clear();
        //ResultFile.open(outputName.str().c_str());
        ResultFile.close();
        result.resize(0);
        return 0;
    }
    
    int getTimeFrameFile(int timeInHours, int timeFrameSize) {
        int fileNum = 0;
        int testWin;
        if (timeInHours > 24) {
            while (timeInHours >24)
                timeInHours -= 24;
        }
        for (testWin = 0; testWin < 24/timeFrameSize; testWin++) {
            if (timeInHours >= testWin*timeFrameSize && timeInHours < (testWin+1)*timeFrameSize)
                fileNum = testWin+1;
        }
        if (fileNum == 0)
            fileNum = testWin+1;
        return fileNum;
    }
    

    通话记录

    1>------ Rebuild All started: Project: MobileSPADE_1.3, Configuration: Debug Win32 ------
    1>Deleting intermediate and output files for project 'MobileSPADE_1.3', configuration 'Debug|Win32'
    1>Compiling...
    1>main.cpp
    1>MobileSPADE.cpp
    1>SQLServer.cpp
    1>Generating Code...
    1>Compiling manifest to resources...
    1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
    1>Copyright (C) Microsoft Corporation.  All rights reserved.
    1>Linking...
    1>LINK : C:\Users\JoshBradley\Desktop\MobileSPADE_1.3\MobileSPADE_1.3\Debug\MobileSPADE_1.3.exe not found or not built by the last incremental link; performing full link
    1>SQLServer.obj : error LNK2019: unresolved external symbol "public: int __thiscall SQLServer::getTimeFrameFile(int,int)" (?getTimeFrameFile@SQLServer@@QAEHHH@Z) referenced in function "public: int __thiscall SQLServer::CalculateProbabilityResults(int,int,int,int)" (?CalculateProbabilityResults@SQLServer@@QAEHHHHH@Z)
    1>C:\Users\JoshBradley\Desktop\MobileSPADE_1.3\MobileSPADE_1.3\Debug\MobileSPADE_1.3.exe : fatal error LNK1120: 1 unresolved externals
    1>Build log was saved at "file://c:\Users\JoshBradley\Desktop\MobileSPADE_1.3\MobileSPADE_1.3\MobileSPADE_1.3\Debug\BuildLog.htm"
    1>MobileSPADE_1.3 - 2 error(s), 0 warning(s)
    ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
    
    2 回复  |  直到 16 年前
        1
  •  7
  •   R Samuel Klatchko    16 年前

    编译器认为getTimeFrameFile是SQLServer方法:

    未解析的外部符号“public:int\u thiscall” ::getTimeFrameFile(int,int)”

    但您将其定义为自由函数:

    int getTimeFrameFile(int timeInHours, int timeFrameSize) {
    

    int SQLServer::getTimeFrameFile(int timeInHours, int timeFrameSize)
    
        2
  •  1
  •   kennytm    16 年前

    getTimeFrameFile 在上面 SQLServer::CalculateProbabilityResults