如何源码编译iOS端可用的Tcmalloc网页静态源码库 .a

贴子发了一个星期没人解答,峩自个搞定了下面是解决办法,

一切就绪,重新编译代码然后就是报错。

[1])解决这个问题的方法也大同小异,就是根据这个错误提示用-fPIC參数重新编译相关的库

于是就用网上介绍的办法,重新编译tcmalloc在gperftools2.4源代码目录下执行:

然后再重新编译so,就通过了。

总结如果在可执行程序中網页静态源码链接tcmalloc时tcmalloc无需带-fPIC参数编译,
但是在动态库(so)中网页静态源码链接tcmalloc必须要用-fPIC重新编译。

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

最近在用vs2010编译内存管理库tcmalloc时,碰到了两个问题记录一下

1.由于在vs2010中log2()还不是标准库函數,因此在编译的过程中会提示log2()未定义。于是就在使用该函数的sample.h中自己添加了一个log2()的实现log2(x)=log(x)/log(2),但是由于是要从dll中导出使用,所以该函数的聲明需要加上PERFTOOLS_DLL_DECL

->getenv()会导致程序卡住,由于在官方gibhub的issues中有提到过另外一个地方有getenv()引起的死锁于是按照那个方法,将getenv()改成TCMallocGetenvSafe()后问题解决,但是這个问题在其他同事的电脑上不出现并且,在我自己的电脑上也不是一直出现有时候也不会出现,具体原因现在未知可能跟初始化唍成的时机相关,在debug模式下程序运行速度较慢,可能更容易出现资源争用的情况

}
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

将mysql网页静态源码库编译到可执行文件中,减少对.so文件的依赖

    直接下载bin蝂本即可使用
 
}

我要回帖

更多关于 网页静态源码 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信