【问题标题】:C - Assembler messageC - 汇编程序消息
【发布时间】:2013-01-21 19:44:24
【问题描述】:

我正在尝试编译一个用 C 编写的 BSP 程序,但我收到了这个奇怪的错误消息:

/tmp/ccEDn8lx.s: Assembler messages:
/tmp/ccEDn8lx.s:141: Error: illegal immediate register operand (%rip)

代码:http://pastebin.com/cuz026ji

有谁知道这是什么原因造成的?

【问题讨论】:

  • 你在编译什么?英特尔x64?对于 64 位机器,在 64 位机器上?
  • @Aniket 这是一个远程unix服务器,知道我怎么知道它是什么吗?
  • "uname -a" 会告诉你它是什么版本的 unix。这似乎很奇怪,因为汇编器是由编译器调用的,所以几乎就像汇编器对编译器来说是错误的......
  • @Smoopy:mcbsp.h 是什么,如何编译?
  • @MatsPetersson C/C++ 代码中可能嵌入了内联汇编,这可能是错误的。

标签: c assembly compilation x86-64 bsp


【解决方案1】:

当我尝试在远程 unix 服务器上编译时,我也弹出了这个错误。我的 cpp 文件将在其他地方编译,但在远程 unix 服务器上它会吐出相同的错误消息:非法立即寄存器操作数 (%rip)。事实证明,我试图使用一个不允许的字符。也就是说,我将“$”作为变量,一旦我替换它就会编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    相关资源
    最近更新 更多