Linux下gcc编译C代码出现段错误,提示没有strcmp.S文件,原因何在?

## 这套代码在Windows的Cygwin64环境下运行正常,拿到VMware下的ubuntu时,编译OK,运行时出现段错误提示缺少strcmp.S文件。截图如下:

图片说明

ubuntu的gcc版本信息如下:

图片说明

在Windows的Cygwin64上gcc的版本为:6.3.0 (MinGW.org GCC-6.3.0-1)

现在的ubuntu版本是16.04.6,之前在ubuntu14.04上尝试升级gcc到6.0,结果,要安装的依赖太多。。。没有成功,后直接安装了16.04.6,但看起来版本比Windows上的还是低。
实在是不知道什么原因导致的,感觉还是环境哪里不对导致的,还请大家帮忙看看,先谢过!
另外,makefile里的gcc编译参数是下面这些,换到Linux下后需要修改什么吗?
CFLAGS = -c -g -Wall -Wswitch-enum -ansi -pedantic -DDEBUG

关于那个找不到的strcmp.S,用whereis命令查找,结果如下:

lichunxia@lichunxia-virtual-machine:~/Work/new_crowbar$ whereis strcmp.S
strcmp: /usr/share/man/man3/strcmp.3.gz

请问你的问之后解决了吗?

大概是升级到匹配的dgb的版本就好了。由于代码最终是在Debain上运行,采用的gcc版本是4.8.2,gdb是7.8.2,就没有这个问题了。