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