【问题标题】:error: /tmp/SASM/macro.o: No such file or directory错误:/tmp/SASM/macro.o:没有这样的文件或目录
【发布时间】:2016-02-08 10:06:23
【问题描述】:

我一直在使用 NASM 开发 SASM ide。在构建时,此错误不断重复

构建开始...
警告!构建中出现错误:
gcc:错误:/tmp/SASM/macro.o:没有这样的文件或目录

%include "io.inc"

section .data
    msg db 'Hello, world!', 0

section .text
    global CMAIN
CMAIN:
    mov ebp, esp
    PRINT_STRING msg
    NEWLINE
    xor eax, eax
    ret

【问题讨论】:

  • 在我的 Debian Jessie 系统上,我 git 克隆了 github 存储库,运行 make install 并安装了 nasm,能够运行 sasm 并且您的应用程序编译、链接和运行没有问题。 sasm 在帮助/关于框中显示 3.2.0 版本。
  • 我很好奇您在settings 菜单、build 选项卡下有什么以及正在使用的linker options 行是什么。
  • 也可能有助于您使用什么操作系统作为开发环境(Linux/OSX/Windows 等)
  • 我使用的是 Ubuntu 14.04... 我试图安装宏,但它在 open() 中给我带来了问题。
  • 您是如何安装 SASM 的(如果您没有成功安装) - 我假设您下载了 Ubuntu-14.04 deb 包?

标签: gcc ubuntu-14.04 nasm


【解决方案1】:

我今天遇到了同样的问题(ubuntu 14.04 lts intel 64bits),但我通过 ubuntu 的 logitec 添加 gcc-multilib 解决了它。

你可以在 Ubuntu 上运行这个命令:

sudo apt install gcc-multilib

(毫无疑问 gcc 编译 - 并且能够在链接程序 nasmhello 之前执行 -macro.c (或/和其他)生成缺少的 macro.o ?)

【讨论】:

  • 谢谢,安装 gcc-multilib 解决了我的问题
【解决方案2】:

问题似乎来自缺少 gcc 编译器。如果你在 x64 上运行 sasm 并为 x86 构建,你需要一个交叉编译器。如上所述,您可以安装 gcc-multilib。或者,您可以在设置 -> 构建中更改“模式”,以便您正在构建的平台与您正在构建的平台相同。

SASM Options

【讨论】:

    【解决方案3】:

    我还在 Ubuntu 14.04 上使用 SASM 进行 NASM 组装,并且在使用 make-file 方法安装它后遇到了同样的问题。我使用正确的包正确删除并重新安装了它:

    https://build.opensuse.org/package/binary/home:Dman95/SASM?arch=x86_64&filename=sasm_3.2.0_amd64.deb&repository=xUbuntu_14.04

    1. 检查您是否具备所有要求(右下角)
    2. 下载 .deb 包
    3. 双击安装

    现在它应该可以工作了。 (感谢我的朋友告诉我应该怎么做。)

    【讨论】:

      【解决方案4】:

      正如其他人所提到的,请确认您正在为正确的架构进行编译。您的输出没有显示任何与架构相关的消息(即“x32 中不存在指令”),因此可能并非如此。如果您能够无错误地启动应用程序并开始编译程序,那么您可能正在处理构建问题。

      这些是带有 nasm 的 x64 架构的示例构建设置。根据您的需要进行更改:

      装配选项:

      -g -f elf64 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$
      

      链接选项:

      $PROGRAM.OBJ$ $MACRO.OBJ$ -g -o $PROGRAM$ -no-pie
      

      汇编器路径:

      nasm
      

      链接器路径:

      gcc
      

      对象文件名:

      program.o
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-09
        • 2019-03-22
        • 1970-01-01
        • 2021-10-31
        • 1970-01-01
        • 2013-08-08
        • 2013-11-04
        • 2012-02-18
        相关资源
        最近更新 更多