首页 新闻 会员 周边 捐助

工程包含了其他模块,导致找不到共用类函数的调试信息(实现代码)的问题

0
悬赏园豆:20 [已关闭问题]

标题没办法解释清楚,这里举例描述一下问题:

ProjectA(主程序)包含了B.lib(ProjectB),ProjectA和ProjectB都用到了STL,并且不是在同一台机器上编译的。
当在ProjectA中调试程序时想进入STL的函数实现,发现根本进不去。
比如这一行代码:

std::string str("cnblogs");

在这行代码下断点并Step Into,发现无法进入string的构造函数。
如果给某些STL函数传入错误参数,调试时发生错误中断后也无法定位到源码。

分析问题应该是ProjectA链接的STL根本不是在本机的源码,而是B.lib中已经编译进去的STL的实现。
由于B.lib是在另一台机器上编译的,所以ProjectA中找不到STL的源码实现。
改变STL头文件和ProjectB提供的头文件的包含顺序也无济于事。
后来又发现有些工程包含了dll也会出现一样的问题,比如ProjectA隐式链接C.dll(ProjectC)。

所以我的问题是,是否能够通过改变工程设置或其他方法,能够让我的ProjectA链接我本机的STL源码,而不是链接子模块中的STL实现?

Terry Wang的主页 Terry Wang | 初学一级 | 园豆:180
提问于:2009-09-29 21:07
< >
分享
所有回答(1)
0

:) 

ammar | 园豆:202 (菜鸟二级) | 2014-03-07 23:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册