• 注册
欢迎加入behaviac Q&A网站。behaviac是腾讯开源组件https://github.com/TencentOpen/behaviac 官方网站:http://www.behaviac.com/,提供各种文档和教程及手册 为了您及时的获得您最新问题的评论或者回答,请提供并验证您的邮箱

BEHAVIAC_RELEASE的问题

0 喜欢 0 不喜欢
85 浏览
git clone源码,linux下构建编译,全部是默认配置,生成libbehaviac_gcc_debug.a和libbehaviac_gcc_release.a两个静态库文件。

现在的情况是:

程序为开发版(有使用DEBUG宏),链接libbehaviac_gcc_debug.a,加载xml格式文件可以正常运行。

如果替换成libbehaviac_gcc_release.a,加载xml格式文件就会报错.堆栈如下:

#0  0x0000000000af0764 in behaviac::CTagObjectDescriptor::GetMember(behaviac::CStringID const&) const ()
#1  0x0000000000b15c5b in behaviac::Property::Create(char const*, char const*, char const*, char const*, char const*) ()
#2  0x0000000000bb4593 in behaviac::AgentProperties::AddProperty(char const*, bool, char const*, char const*, char const*) ()
#3  0x0000000000bb5159 in behaviac::AgentProperties::load_xml(char*) ()
#4  0x0000000000bb5853 in behaviac::AgentProperties::Load() ()
#5  0x0000000000b0a628 in behaviac::Workspace::Load(char const*, bool) ()
#6  0x0000000000bb96b4 in behaviac::Agent::btload(char const*, bool) ()
 

请问是否程序应该去掉DEBUG宏,也要同时定义BEHAVIAC_RELEASE才可以使用静态库?
最新提问 9月 10, 2016 用户: cooldesert (470 分)

1个回答

0 喜欢 0 不喜欢

请参考:http://www.behaviac.com/language/zh/build/

简而言之,如果不是很理解cmake的机制,就请使用提供的cmake,不要轻易手工改动。

最新回答 9月 12, 2016 用户: jonygli (58,410 分)
文档自然看了,都是使用的默认配置
linux下可以运行或参考:cmake_generate_projects.sh

提供的例子中,cmake_generate_projects.sh会在cmake_binary中生成linux(debug和release两个子目录),分别在debug或release下运行make就会生成相应的debug或release版。
...