首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将内核项目从DJGPP移植到MinGW

将内核项目从DJGPP移植到MinGW
EN

Stack Overflow用户
提问于 2011-10-18 14:54:50
回答 1查看 469关注 0票数 2

试图用C++ & NASM (以前的DJGPP & NASM)编译一个MinGW内核项目。实际上也尝试过Cygwin,其结果与此完全相同:

  • 首先,刚刚把\DJGPP\bin换成了\MinGW\bin。得到以下链接错误:target coff-go32 not found.
  • 将目标交换到elf32-i386,并得到cannot perform PE operations on non PE output file 'build/kernel.elf' --这是一个奇怪的错误,因为据我所知,我没有做任何“PE操作”。
  • 再次更改目标,转到pe-i386,得到一个新的错误build/Common.o:Common.cc:(.text+0x2a): undefined reference to 'atexit'

MinGW似乎正在为静态类生成atexit调用。DJGPP没有。内核在关机期间执行自己的DTOR处理。我知道定义atexit会“解决”这一问题,但这更像是一次黑客攻击,而不是一种长期解决方案。我想让MinGW编译现有的代码,而不进行任何(或最小的)修改。

坦率地说,我对Windows环境不太熟悉,可以使用任何关于该做什么的提示。该项目(减去上面列出的更改)在DJGPP下编译并引导良好。区别似乎在于DJGGP和MinGW处理编译时类声明的方式?

编辑:最终崩溃了,并在Cygwin上构建了一个交叉编译器。现在都在工作了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-18 16:41:14

你需要建立一个独立的交叉编译器。这个问题在OSDev维基中被多次引用,以至于大多数人建议您通过首先创建交叉编译器开始编写内核。

这篇文章将提供一个逐步的参考来构建你自己的交叉编译器.注意,在Windows中,您可能必须使用MingW或Cygwin构建交叉编译器

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7809303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档