[cpp] 关于c++最近遇到的几个不得不提的问题

Wu Yongwei adah at sh163.net
Thu Mar 2 22:16:44 CST 2006


zhs007 wrote:

> 一,二进制兼容性太差
> 最近帮个朋友写点东西,他提供了几个lib,里面用到了stl,是 vc 自带的,我这 
> 边所有的库都是用 stlport编译的,如果要使用他的 lib ,我所有的库需要重新 
> 编译不说,还有少量的接口,stlport 和 msstl 不兼容...... c++只有源码级别 
> 的兼容,太不方便了。这点比C都要差得太多了,所以一直到现在,我都在传递参 
> 数的时候,尽量的传 const char* ,而不是 std::string 。
> 二,弱 link 的问题
> 有个项目,大约 100 多个文件,维护起来很痛苦,所以我决定按功能,分成若干 
> 小 lib,最后 link 成 dll,这样 可维护性更好一些。粗想下来什么问题都没 
> 有,但却就是这样简单的工作都会出问题:
> 为了降低模块之间的耦合度,我使用了很多 factory ,这样就会有一系列 object 
> 是弱 link 的(增减修改object都不会对整体造成任何影响),而 lib 本身也是 
> 弱 link 的,没有使用到的东西是不会 link 到最终的目标文件中去的,于是,表 
> 面上看来编译链接都没问题,但实际运行起来就发现,怎么什么都是空的阿,调试 
> 了半个多小时,终于找到原因,超级郁闷的说!

C++的二进制代码是不跨编译器/库的。既然用MSVC,要考虑兼容性的话就盯着MSVC
7.1/MSVC 8.0用吧。它们的C++标准库实现还是不错的。

吴咏炜


More information about the Cpp mailing list