linux 64位系统编译 32 位程序方法
2012-10-28 17:29
330 查看
问题:工程中有一个库文件是32位的,在64位下编译,发生错误:
[*****@Fedora-17-64 Lab1-linux]$ make
gcc datalink.c protocol.a -o datalink -lm -lstdc++
/usr/bin/ld: i386 architecture of input file `protocol.a(protocol.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `protocol.a(crc32.o)' is incompatible with i386:x86-64 output
collect2: 错误:ld 返回 1
make: *** [datalink] 错误 1
Makefile如下:
1
2 datalink: datalink.c datalink.h
3 gcc datalink.c protocol.a -o datalink -lm -lstdc++
4
5 clean:
6 ${RM} datalink
7 ${RM} *.o
百度后发现在gcc那行后面加上-m32参数 即可模拟32位系统进行编译。
[*****@Fedora-17-64 Lab1-linux]$ make
gcc datalink.c protocol.a -o datalink -lm -lstdc++
/usr/bin/ld: i386 architecture of input file `protocol.a(protocol.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: i386 architecture of input file `protocol.a(crc32.o)' is incompatible with i386:x86-64 output
collect2: 错误:ld 返回 1
make: *** [datalink] 错误 1
Makefile如下:
1
2 datalink: datalink.c datalink.h
3 gcc datalink.c protocol.a -o datalink -lm -lstdc++
4
5 clean:
6 ${RM} datalink
7 ${RM} *.o
百度后发现在gcc那行后面加上-m32参数 即可模拟32位系统进行编译。
相关文章推荐
- 64位linux 系统运行32位程序解决方法
- 64位Linux系统编译32位汇编程序
- 64位linux下编译32位程序的错误“error: gnu/stubs-32.h: No such file or directory”
- linux 64位系统 NetBeans 编译32位qt程序
- linux(ubuntu 10.10) 64位系统 gcc编译(c)成32位(静态)可执行应用程序的方法
- 看你的linux编译系统是32位还是64位最简单的方法以及不同数据类型占用字节个数
- linux下查看系统位数(32/64位)的方法
- 在64位Linux系统交叉编译32位软件:ffmpeg
- 编译Linux系统内核的方法步骤
- premake 在64位Ubuntu系统下编译32位GCC程序
- 32位的fortran函数库在64位Linux下编译及使用的方法
- Code::Blocks +mingw64 编译64位程序配置方法
- 转载)VC6编译驱动的方法(含32和64位)
- 关于在ubuntu16.04 64位系统上安装交叉编译工具出现错误的解决方法
- Linux:32/64位程序(应用程序、共享库、内核模块)
- linux下编译程序报错信息是乱码的解决方法
- linux下安装matlab(针对64位系统)方法
- 64 位 Arch Linux 系统上运行和编译 32 位程序。
- 分享在Linux下编译Android源代码并修改调试系统自带应用的方法
- Linux系统平台下关于GCC编译及使用的方法