سؤال

حسنًا ، لذلك أواجه مشكلة في محاولة اكتشاف المشكلة في الكود الخاص بي. لدي الكثير من التعليمات البرمجية ، لذا سأقوم فقط بنشر الأجزاء ذات الصلة التي تعبث عندما أقوم بتجميع. لديّ الوظيفة التالية داخل الفصل وسيتم تجميعها وسيتم تشغيل كل شيء على ما يرام حتى أسمي الوظيفة "CalcutionProbabilityResults" ويدير السطر السابع من التعليمات البرمجية داخلها. لقد "إزالة" هذا السطر من الكود في برنامجي حتى تتمكن من العثور عليه أسهل. أنا متأكد من أن لديّ توجيهات #include المناسبة المطلوبة لأنها تجمع بشكل جيد عندما لا أتصل بالوظيفة ، بحيث لا يمكن أن تكون هذه هي المشكلة؟ أعلم أن بعض تدوين التسمية الخاص بي يحتاج إلى القليل من المساعدة ، لذا يرجى تحمل معي. شكرا مقدما لمساعدتكم أصدقائي.

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 ==========
هل كانت مفيدة؟

المحلول

يعتقد المترجم أن GetTimeFrameFile هي طريقة SQLServer:

الرمز الخارجي الذي لم يتم حله "عام: int __thiscall خادم قاعدة البيانات:: getTimeframeFile (int ، int) "

لكنك تم تعريفها كدالة مجانية:

int getTimeFrameFile(int timeInHours, int timeFrameSize) {

تغيير ذلك من وظيفة مجانية إلى طريقة الفصل سوف يحل المشكلة:

int SQLServer::getTimeFrameFile(int timeInHours, int timeFrameSize)

نصائح أخرى

ضع الوظيفة getTimeFrameFile في الاعلى SQLServer::CalculateProbabilityResults.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top