📄 linux下c语言编程常见问题.txt
字号:
Linux下C语言开发经常遇到的问题(随时遇到随时补充)
1. GCC编译出现Assembler错误。
问题描述:
gcc编译程序,出现下面的提示:
/tmp/cciL1MpP.s: Assembler messages:
/tmp/cciL1MpP.s:17: Error: suffix or operands invalid for `push'
/tmp/cciL1MpP.s:21: Error: suffix or operands invalid for `pop'
故障原因:
这是因为操作系统的版本问题造成的,问题出现在64为的Linux系统下,如果C语言源代码使用的是32为操作系统编码规范或连接了32位的函数库或目标代码,就会出现上面的错误。
解决方法:
在编译时gcc增加-m32选项,将目标代码编译成32位的即可,这样编译出来的代码仍然可以在64位的操作系统下运行。
2. GCC编译器关于处理difftime()函数的一个BUG。
问题描述:
使用了函数difftime()进行时间比较的程序经常出现core dump或收到中断信号退出
故障原因:
这是因为difftime()的返回值是一个double型的值,如果它与一个整型值变量进行比较,gcc编译器生成的代码存在溢出的问题,就把后面的变量给冲掉了。
解决方法:
避免使用difftime进行时间比较,直接将两个时间相减即可。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -