存档

文章标签 ‘GCC’

gcc嵌入汇编Error: unsupported for `mov’ 错误解决方法

2012年11月26日 sigma 没有评论 9,611 views

今天,在64位机器上,用gcc编译一段嵌有汇编代码的程序,发现报:

$ gcc -o a.out test.c
test.c: Assembler messages:
test.c:4: Error: unsupported for `mov'

其中,test.c的内容如下:

#include <stdio.h>
int main(){
	printf("Test\n");
	 __asm__ __volatile__(
	"mov $0xe0000019,%eax;or $0x00000001,%eax;mov %eax,%cr0;"
	);
	return 0;
}

后来查了下,是因为在64位机器上编译32位的汇编码导致的。解决方法就是加个-m32的选项,使gcc使用32位的ABI。

分类: 贝壳 标签: ,

GCC编译时指定宏定义

2011年8月15日 sigma 没有评论 9,392 views

经常,有些宏定义是和系统相关的,这时候需要在编译时制定,在GCC中,可以通过-D制定。
如 gcc -o test.out -DLINUX-X86 test.c 相当于test.c里面有如下代码:

#define LINUX-X86
分类: 编程相关 标签: ,

无觅相关文章插件,快速提升流量