Linux下碰到的一些问题
如何解决warning: no newline at end of file?
今天写了一段代码, 是在Windows下编辑的, 保存后放在linux系统下编译.
gcc和cc都产生以下的警告:
1 | a.h:1:2: warning: no newline at end of file |
后来发现解决这个问题产生的原因是源文件的最后一行没有回车符造成的; 解决的办法很简单, 在最后一行敲一个回车, 然后保存, 重新编译.
Linux运行文件时报错 bash $’\r’ command not found
这个主要是跨平台的问题,在Windows下编写好的sh文件,丢到Linux下运行会报错:bash: $’\r’: command not found。这是因为Windows系统的文件换行使用的是\r\n,而Unix系统是\n,可以通过下面的方式解决:
通过dos2unix来进行文件转换
1 | $ dos2unix filename.sh |
或者使用vim打开文件,然后使用命令:set ff=unix,保存文件即可。
send-mail: fatal: parameter inet_interfaces: no local interface found for ::1
在Linux里面使用mail发送邮件的时候报错:
1 | $ echo 'Title' | mail -s "TEST" mail@mail.com |
解决方法如下:打开文件 /etc/postfix/main.cf,将原始内容
1 | inet_interfaces = localhost |
修改为:
1 | inet_interfaces = all |
然后重新启动就ok了,service postfix restart
bashrc每次都不自动导入
新建的用户发现每次都不能把各种环境变量导入进来,导致类似的命令都无法使用,后面发现是少了bash_profile文件,只需要新建该文件:
1 | $ touch ~/.bash_profile |
然后加上如下内容:
1 | # .bash_profile |
保存退出重新登陆,顺利解决。
/lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found
这个问题出现在CentOS7上,编译一个软件的时候出现的,首先可以查看CXXABI可用的版本,如下:
1 | $ strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI' |
查看本机的其他关于libstdc的版本
1 | $ find / -name libstdc++.so.6 |
解决的方法,很简单,且已经奏效,把anaconda里面比较新的做一个软连接到/usr/lib64即可解决,不过记得做好备份。