Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何从多个C文件中获取单个程序集?_Assembly_Merge - Fatal编程技术网

Assembly 如何从多个C文件中获取单个程序集?

Assembly 如何从多个C文件中获取单个程序集?,assembly,merge,Assembly,Merge,我已经构建了一个包含多个源文件的C项目,我想将这些文件编译成一个程序集。我该怎么做 GCC就是帮不了我。我试过两种方法,但都失败了 当我在Makefile中添加-S选项时,我得到的唯一结果就是大量的程序集文件 首先,我编译了这个项目并得到了一个ELF文件。然后我使用dumpobj工具deassembly那个ELF文件,最后我得到了汇编文件,但是有很多冗余,而且与汇编格式也不匹配 那么,我如何获得单个组件?我能做的唯一方法是将源文件合并到一个C文件中吗?尝试使用-combine和-S创建单个程序集

我已经构建了一个包含多个源文件的C项目,我想将这些文件编译成一个程序集。我该怎么做

GCC就是帮不了我。我试过两种方法,但都失败了

  • 当我在Makefile中添加
    -S
    选项时,我得到的唯一结果就是大量的程序集文件

  • 首先,我编译了这个项目并得到了一个ELF文件。然后我使用
    dumpobj
    工具
    deassembly
    那个ELF文件,最后我得到了汇编文件,但是有很多冗余,而且与汇编格式也不匹配


  • 那么,我如何获得单个组件?我能做的唯一方法是将源文件合并到一个C文件中吗?

    尝试使用
    -combine
    -S
    创建单个程序集文件



    来源:

    如果您使用的是4.6之前的gcc,您可以尝试将
    -与
    -S
    结合使用。这将生成一个程序集文件。谢谢,但是我在Linux中使用了交叉工具链,gcc版本是4.1.64.1.6?gcc官方网站显示4.1版本系列以4.1.2结尾。在任何情况下,4.1.6比4.6早,因此它应该仍然有
    -combine
    选项。我找到了-combine选项,谢谢!我回答这个问题,因为似乎没有人会这么做。