库路径加载不到
vi /etc/ld.so.conf
编辑后如下:
include ld.so.conf.d/*.conf
/usr/lib
程序异常退出定位
1. 编译选项加上 -g,加入调试信息。
2. gbd 调试执行,参考 https://www.cnblogs.com/chenmingjun/p/8280889.html
a. gbd 程序
b. start 表示启动调试
c。c 表示 continue执行
全局变量的问题
1. linux下面全局变量默认编译是在都在一个空间,需要启动编译指令避免多个dll有相同的全局变量,尽量不要使用全局变量。
- 库需要用命名空间进行保护,避免多个库里面有相同的类
- 单例模式需要注意,建议添加template参数,参考boost singletonpool 实现
- 添加编译指令进行控制,导出符号进行控制,只导出需要的。