c++ - 迷之source ~/.bash_profile需要多次执行
PHPz
PHPz 2017-04-17 14:49:53
0
2
542

问题是这样的

1.我写的C++程序,包含C++和Python混合编程,涉及用C++创建Python解释器并执行Python逻辑代码,回避了Python多线程,在redhat6.5的服务器上编译通过,编译环境:Python 2.7.11,g++ 4.x.x
2.login上去服务器之后,启动程序时dump,报内存泄漏;

3.于是source ~/.bash_profile十几遍,(不确定的一个数字,可能十遍,也可能二十遍,在这之间)然后再启动,正常运行了。杀掉程序,再启动,没问题,不需要再source ~/.bash_profile
4.bahsh_profile里确实写了程序运行所需要的消息引擎的库路径,如果重新编译了引擎,是可能要重新source的;
5.如果退出登录,重新登录,又返回到2所描述的情形;
6.同样的代码、程序,在centos6.5上运行没有出现这样的问题;
7.服务器无法联网,内部私密服务器,安装包都需要离线安装,很麻烦。

PHPz
PHPz

学习是最好的投资!

全部回复(2)
左手右手慢动作

bash_profile包含了环境变量,执行之后环境变量被写入,后续此账号下的程序运行可见这些环境变量。
当你重新登录或者重新编译引擎,可能导致环境变量失效。

伊谢尔伦

不要把库路径写在bash_profile等脚本里,bash_profile是依赖于用户的交互式登录这个行为的,不靠谱。
估计是你反复执行导致某些环境变量不断追加,反而误打误撞能够运行了。
在/etc/ld.so.conf.d/建立一个文本文件比如msgeng.conf,里面内容是你的库的所在目录的绝对路径。然后sudo ldconfig,一劳永逸。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!