Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
C mips程序集出现问题_C_Assembly_Embedded_Linker_Mips - Fatal编程技术网

C mips程序集出现问题

C mips程序集出现问题,c,assembly,embedded,linker,mips,C,Assembly,Embedded,Linker,Mips,我的mips端口有一个问题…每当我试图用printf语句编译一个C程序时,它会给出一个警告,说它无法识别,并且在生成的汇编文件中没有.asciiz指令…字符串不在那里…有人能告诉我为什么吗 构建裸机交叉编译器和交叉工具链有什么区别 我不熟悉交叉编译器的世界……:-)请确保您有 #include <stdio.h> #包括 在使用printf的C源文件顶部 构建裸机交叉编译器和交叉工具链有什么区别 交叉编译器(即gcc)是交叉工具链的一部分 除了gcc,我们还需要 binutil

我的mips端口有一个问题…每当我试图用printf语句编译一个C程序时,它会给出一个警告,说它无法识别,并且在生成的汇编文件中没有.asciiz指令…字符串不在那里…有人能告诉我为什么吗

构建裸机交叉编译器和交叉工具链有什么区别

我不熟悉交叉编译器的世界……:-)

请确保您有

#include <stdio.h>
#包括
在使用
printf
的C源文件顶部

构建裸机交叉编译器和交叉工具链有什么区别

交叉编译器(即gcc)是交叉工具链的一部分

除了gcc,我们还需要

  • binutils(用于目标平台)
  • 内核(目标平台的)
  • glibc(用于目标平台)

查看详细信息。

您是如何编译的?Eclipse还是命令行?我在使用Eclipse时遇到了类似的问题,并发现Eclipse中的处理器系列是“空的”。这导致汇编程序无法理解编译器的输出,类似于您描述的症状

交叉编译器与普通编译器并没有太大区别:

  • 输出的二进制文件可能与生成计算机不兼容(可用于多个平台)
  • 编译器可以输出许多不同平台的代码

在GCC的情况下,可能会加载一个或多个处理器系列。Cygwin附带的GCC非常有限(i686);在Linux中,您将有更多的选择。我建议您提出一个不同的问题,即如何设置交叉编译。您需要帮助。

如果您可以发布一个再现问题的最低代码示例,这将有所帮助。我猜您还没有包含定义printf的头文件。(另外,根据您的目标,printf是一个在嵌入式环境中使用的相当昂贵的例程。您可能希望坚持使用put()),因此您的意思是交叉编译器工具链需要所有这些包,而裸机交叉编译器则不需要?。。另外,在gcc讨论中,我看到一些人建议使用uclibc或newlib而不是glibc。。。这真的会有什么不同吗???我想我建立了一个交叉编译器,但我不确定。。。。我安装了binutils 2.19,然后为mips linux gnu配置了gcc 4.3.1作为目标…然后使用该命令汇编了c文件并创建了一个可执行文件..但我不确定我所做的是否是为了一个裸机交叉编译器..我该如何发现呢?我忘了添加,尽管使用了-o选项,我仍然没有生成任何文件?我不明白为什么..我重新阅读了你的问题,如果它只与printf有关,我怀疑它是否真的是一个(交叉)编译器问题。你能包括警告吗?您是否包含正确的文件?否#定义printf上的活动?