ubuntu g++编译32位应用

is incompatible with i386:x86-64 output报错

gcc编译也会出现类似问题

/usr/bin/ld: warning: i386 architecture of input file `./src/main.o' is incompatible with i386:x86-64 output

出现这种警告的时候的时候,运行程序老是段错误,要加-ms32,就好了。

gcc -m32 -o usehello_static usehello.c libhello.a

错误: fatal error: bits/libc-header-start.h: No such file or directory #include <bits/libc-header-start.h>

出现这个错误时,这多半是你所编译的项目是在64位机器上生成32位的项目,你需要安装对应的gcc 32位的库;此时检查gcc一定有-m32的存在;

你系统中gcc没有安装multilib 库;使用这个库可以在64位的机器上产生32位的程序或者库文件;

sudo apt-get install gcc-multilib g++-multilib

 

Linux下undefined reference to ‘pthread_create’问题解决

问题的原因:pthread不是linux下的默认的库,也就是在链接的时候,无法找到phread库中哥函数的入口地址,于是链接会失败。

解决:在gcc编译的时候,附加要加 -lpthread参数即可解决。

试用如下命令即可编译通过

gcc main.c -o test -lpthread

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值