1

現在エラーが発生しています:

kernel.c++:76:21: error: expected primary-expression before ',' token
     Task task1(&gdt , taskA);
                     ^
kernel.c++:77:21: error: expected primary-expression before ',' token
     Task task2(&gdt , taskB);

なぜこれがここで起こっているのかわからないのは、kernel.c++ のコードを簡略化したものです。

void taskA();
void taskB();

extern "C" void kernelMain
        (
            /*arguments...*/
        )


{
       gdt gt;

       TaskManager taskManager;
       Task task1(&gdt , taskA);
       Task task2(&gdt , taskB);
       taskManager.AddTask(&task1);
       taskManager.AddTask(&task2);
}

void taskA()
{
    while(true)
        printf("A");
}


void taskB()
{
    while(true)
        printf("B");
}

私の実際のカーネル コードを見たい場合: https://github.com/amanuel2/OS_Mirror/blob/master/kernel.c%2B%2B ..

これが私の task.h の簡略化です。

class Task
{
          friend class TaskManager;
              private:
                  uint8_t stack[4096]; // 4 KiB
                  CPUState* cpustate;
              public:


              Task(gdt *GlobalDescriptorTable, void entrypoint());
              ~Task();
    };


    class TaskManager
    {
            private:
                Task* tasks[256];
                uint32_t num_task;
                uint32_t current_task;
            public:
                TaskManager();
                ~TaskManager();
                bool AddTask(Task* task);
                CPUState* Schedule(CPUState* cpustate);
    };

ここで task.h のコード全体を見たい場合は、https ://github.com/amanuel2/OS_Mirror/blob/master/task.h ..

そして最後に task.c++ を最小化しました:

Task::Task(gdt *GlobalDescriptorTable, void entrypoint())
{
 /*Stuff Happenes Here.. But i Minimized it*/
}

ここで実際の task.c++ を見たい場合は、https ://github.com/amanuel2/OS_Mirror/blob/master/task.c%2B%2B ..なぜそのエラーが発生するのかわかりません。どんな助けでも大歓迎ですありがとう。

4

1 に答える 1