aar*_*ell 4 c++ memory-leaks poco
我刚刚开始尝试将Poco C++库与我们的游戏引擎集成,但是每次我链接/usr/lib/libPocoFoundation.so我的程序突然有51个内存泄漏.删除链接选项可以消除所有泄漏(它们都不是来自我的代码).即使我#include从我的c ++文件中删除所有Poco,也会发生这种情况.
我怀疑Poco的基础(核心)方法确实存在51个内存泄漏 - 搜索他们的论坛没有透露任何内容,我相信其他用户会注意到这个明显的东西.我认为这更像是我如何链接到Poco的问题?
我在Ubuntu 11上,使用Code :: Blocks作为IDE,使用g ++ 4.5.2构建,并从ubuntu ppa(sudo apt-get install libpoco-dev libpoco-doc)中获取Poco 1.3.6p1-1build1 .
任何有关问题的建议都是最受欢迎的!我唯一能想到的是我没有正确地连接Poco.
可能相关:在c-poco-lib-linking-error-when-trying-static-linking-vs9-express中的OP提到了"添加预处理器标志Foundation_EXPORTS POCO_STATIC PCRE_STATIC" - 这会怎样?我在Poco参考页面上看不到有关如何正确链接Poco的任何信息.
你没有说什么工具告诉你你有内存泄漏,但我会假设它是valgrind,因为你在Ubuntu上.
如果发生泄漏,即使你不调用任何POCO方法,那么很可能,这些都是出于某种原因没有被后来拆了POCO库的静态初始化期间发生的一次性分配.
虽然这对图书馆来说并不是特别好的行为,但这并不是致命的.您应该担心的泄漏是重复发生的泄漏并逐渐消耗内存.
我建议现在使用valgrind --gen-suppressions=all生成一次性泄漏的抑制(特别好,你没有调用任何POCO方法).然后,看看POCO库,看看你是否可以找出为什么这些分配没有在.fini时间解开.如果可以,那么,让POCO人员得到您的修复,然后您可以删除您的抑制条目.如果没有,请将它们保留,以便这些"误报"不会干扰您在代码中发现真正有害的内存泄漏.