我正在Rust中編寫一個操作系統,需要直接調用我計算的虛擬地址(類型爲u32)。我認爲這是相對簡單的: let code = virtual_address as (extern "C" fn());
(code)();
但是,這抱怨演員是非原始的。這表明我使用了From特質,但我不明白這可能會有什麼幫助(雖然我對Rust比較新,所以可能會漏掉一些東西)。 error[E0605]: non
我正在製作一個操作系統,我被困在GDT中。我嘗試過不同的教程,例如http://www.osdever.net/bkerndev/Docs/gdt.htm和http://www.jamesmolloy.co.uk/tutorial_html/4.-The%20GDT%20and%20IDT.html,但是我的操作系統總是崩潰。我怎樣才能解決這個問題?我使用grub,所以內核已經處於保護模式。 bo
當我嘗試編譯C代碼,其中包括另一C頭我得到這個錯誤以前聲明: x86_64-uefi/../../libk/string.h:9:10: error: function declared 'ms_abi' here was
previously declared without calling convention
KABI int memcmp(const void *d1, co
這就是問題所在: 當我用C鏈接到我的腳本,使用LD,當我產生ELF32-I386文件在LD輸出格式,把它作爲OUTPUT_FORMAT()在ld腳本中,我沒有任何錯誤,但是如果我嘗試放入這最後一個OUTPUT_FORMAT()「二進制文件」或嘗試輸出帶.bin擴展名的文件,我會得到如下錯誤的混合: kernel.o: In function `k_main':
kernel.c:(.text+0