1

いくつかの外部アセンブラ関数とのインターフェイスが必要なオペレーティング システムを作成しています。宣言をヘッダーに入れました:

namespace Kernel
{
    class DescriptorTables
    {
        public:
        void init();
        void gdt_set_gate(s32int,u32int,u32int,u8int,u8int);
        private:
        extern void gdt_flush(u32int);
        struct gdt_entry_struct
        {
        //...

コードが実行されると、生成されます

DescriptorTables.h:10:31: エラー: 'gdt_flush' に指定されたストレージ クラス

以前にこのエラーを見たことがありません。これを修正する方法についてのアイデアはありますか?

4

1 に答える 1

2
    extern void gdt_flush(u32int);

externクラスの中でそのように言うことはできません。externはストレージクラスであり、表示されているメッセージを説明します。

于 2012-01-02T05:35:45.573 に答える