我正试图通过
bare bones tutorial
在osdev上。我想用C++构建我的内核。当我尝试编译时,我发现一些链接器错误:
~/opt/cross/lib/gcc/i686-elf/7.3.0/../../../../i686-elf/bin/ld: cannot find crt0.o: No such file or directory
~/opt/cross/lib/gcc/i686-elf/7.3.0/../../../../i686-elf/bin/ld: cannot find -lstdc++
~/opt/cross/lib/gcc/i686-elf/7.3.0/../../../../i686-elf/bin/ld: cannot find -lm
~/opt/cross/lib/gcc/i686-elf/7.3.0/../../../../i686-elf/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
我按照指示
make a cross compiler
。我在macOS上,所以我遵循了OS X说明,认为它们仍然相关。
我确实意识到,我不会得到来自C++的完全运行时支持。上学期我在大学上了一门关于操作系统的课程,但它们为我们设置了很多东西(启动文件、基本内核功能,如在屏幕上放置字符等),还为我们提供了一个运行时环境,所以我从来没有机会学习如何独自完成这一切。我想用C++构建内核,以便用C++构建它,并看看它与我们用C构建的内核有何不同。
如何构建这些库?