【问题标题】:How to develop with both Assembly and C/C++ on FASM?如何在 FASM 上同时使用 Assembly 和 C/C++ 进行开发?
【发布时间】:2014-08-26 21:19:59
【问题描述】:

所以,我正在开发一个操作系统,目前我只在汇编中编写代码。我希望继续使用 C/C++ 制作它。 我使用的编译器/编辑器是 FASM(适用于 Windows)。我尝试过使用 MinGW,但是在链接 fasm 的 .o 文件时会出错。 如何继续使用 Assembly 和 C/C++ 进行开发? 另外,我在网上搜索了很多,但没有找到解决方案。

编辑: 这是我正在使用的 make 批处理文件:

cls
echo off

fasm.exe los.asm losasm.o
pause
cls
"C:\MinGW\bin\gcc.exe" -nostdlib  los.cpp -o loscpp.o
pause
cls
"C:\MinGW\bin\gcc.exe" -o "C:\Users\helder\Desktop\Lemperyum OperativeSystem I\los" -o -nostdlib losasm.o loscpp.o
pause
cls

pause

【问题讨论】:

  • 什么样的错误?
  • @user3553031 文件无法识别。
  • 旁白:有什么原因你不使用make 或类似的东西来构建? (GNU Make 是 mingw 的一部分,可能已经安装了。)

标签: c++ c assembly operating-system fasm


【解决方案1】:

FASM 倾向于直接生成可执行文件作为其输出,默认为“平面二进制输出”(参见manual)。要创建目标文件,您必须使用命令行选项之一

  • format COFF
  • format ELF

您选择哪一种取决于其他工具。副手,我不确定 MinGW 输出什么类型的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多