动态库链接的问题
在HP-UX rp3400 B.11.11 U 9000/800 上,
发现在动态链接库里,无法存取到类里面的静态对象.
class CUser
{
public:
static const string m_table;
int test(const string & teststr);
};
const string m_table CUser::m_table="test";
CUser::test(const string & teststr)
{
static string str1="a";
string str2;
str2=str1+m_table; //=============库就会蹦在这个地方
}
gdb发现m_table 始终是否非法的地址,只要已访问就会崩溃
不知在生成动态库的时候,需要加什么参数。
但是只要我静态链接这个库就不会有这个问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
http://blog.chinaunix.net/u/19222/showart_405094.html
看到一个这个,但试了还是没用
跟我有类似问题的帖子
http://bbs.chinaunix.net/viewthread.php?tid=1521446
但是我的库在linux,windows下使用动态库是没有问题的。
[ 本帖最后由 wxgitpub 于 2009-9-8 13:53 编辑 ]
// String operations:
/**
* @brief Return const pointer to null-terminated contents.
*
* This is a handle to internal data. Do not modify or dire things may
* happen.
*/
const _CharT*
c_str() const
{ return _M_data(); }========这是1523的位置
gdb最后都提示:
#0 CCoreRuntimeConfig::Load(std::string const&) (this=0x40011cd8, ConfigFile=@0x7f7f0d64)
at /usr/local/include/c++/4.2.3/bits/basic_string.h:1523
gcc的版本
Using built-in specs.
Target: hppa2.0w-hp-hpux11.11
Configured with: ../gcc/configure
Thread model: posix
gcc version 4.2.3
ld是打完PHCO_38279补丁后的版本