【关注公众号cpp_coder,学习更多实用技术经验。】
文章来源:C++技术网 原创文章版权所有,未经授权,禁止转载。
生成so库文件,测试的时候需要将so库文件拷贝到/usr/local/lib/下,然后再启动测试程序来测试库是否OK。每次要敲一次cp命令,挺麻烦的。然后我想,是不是可以将so库文件直接生成到/usr/local/lib/下呢?
我使用的是VS+VisualGDB+Linux(Centos)服务器的开发方式,在VS中直接写代码编译调试,实际的执行在Linux上。一般在项目属性中都可以设置输出文件的路径的。所以我就在VisualGDB的项目属性中修改了一下输出路径,如下图所示:
在Binary directory中填入绝对路径,就可以了。然后编译试了一下,看了一下/usr/local/lib/目录,果然是进去了。目录中不仅有libmonitorclound_cgi.so文件,还有很多中间文件。中间文件也输出到这里了,有点不爽。不过为了节省每次敲cp命令的时间,这一点就忍忍了。等测完再删掉。所以也没有在意。
后来代码测试了一下,发现函数需要改改,然后就重新编译了一下。然后就看看编译时输出的日志,结果让我瞄见了一行命令:rm -rf /usr/local/lib/
看到rm,而且还是-rf,瞬间感觉有点不对劲了。在往后面一看,还是/usr/local/lib/,难怪这个命令执行的有点慢,很快就意识到,出大事了。而且当时已经来不及了。就这样执行完了。
今天是周五呀,本来说不加班的,吃饭回来说整理下就下班回去的。结果整了这么一出。只有加班恢复了。/usr/local/lib目录成空的了:
很确定的两个程序python和nginx是没法跑的了。这个系统环境是辛辛苦苦搭建起来的,就这样一下给毁了。里面的库文件也没有办法找回来了。所以,也只能重装系统,再搭建一下环境了。
经常看到一个高效的坑人做法就是,叫新手在Linux上执行:rm -rf / 。一直觉得谁会这么傻。但是事实发生时肯定不会这么明显。所以在使用rm命令或者相关可能会用到rm命令时,要千万小心,更不要拿系统目录来玩。一不小心就导致整个系统被毁了。这是以身作则。
在此做个记录,警告自己以后要小心。笑什么,你也要小心哦。如果真是发生在自己身上,麻烦可就多了。还好我这个是开发测试服务器,所以重装就可以了。而如果是正式运营的服务器,这个不小心,那就真完蛋了。会造成经济损失的哦。
文章来源:C++技术网 原创文章版权所有,未经授权,禁止转载。
【关注公众号cpp_coder,学习更多实用技术经验。】