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
出现这个错误时,这多半是你所编译的项目是在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