- 博客(5)
- 收藏
- 关注
原创 linux下动态库符号冲突问题记录
所以正常情况下,如果一个符号实例出现在动态库(DSO)中,但是已经在静态可执行文件或者之前加载的动态库中被定义,那么以前的定义也将被用于当前的动态库中。最近遇到的一个比较有趣的问题,linux系统下动态库符号冲突造成了运行异常,简单来说就是主程序在某些高版本的系统上间接依赖到了系统的动态库libxxx.so(瞎起的名字),而这个动态库导出的符号与项目中的动态库A符号冲突,导致在实际运行时出现异常,在查看堆栈后发现程序最终执行的是libxxx.so中的函数而不是A中的。
2024-09-05 18:44:35
216
原创 指针和引用的作用及区别
传参,避免内存分配及对象数据的复制,但指针本身仍占用小部分空间,不如引用极致。指针是对象,指针是有地址的,可以定义指针的指针,如二级指针、三级指针等。引用不是对象,没有实际地址,不能定义引用指针,也不能定义引用的引用。指针不强制需要初始化,但最好初始化,避免发生未定义的行为。引用类型传参可避免内存分配及对象数据的复制,节约内存空间。引用必须初始化且不能初始化为空对象,初始化后不能再改变。引用是目标对象的别名,对引用操作就是对目标对象操作。引用类型的函数返回值,可避免对象数据的复制。3、是否直接操作对象。
2024-03-05 01:28:39
243
原创 static关键字
在模块内,在源文件中声明static修饰的变量,只作用于当前文件,在头文件中声明的static修饰的变量,作用于所有引入该头文件的文件中.在类中,static修饰的成员变量和成员函数属于整个类所有,可以理解为该类的全局属性。在函数体中,静态局部变量声明在某个函数体内,其他函数不能使用。cout
2024-03-05 01:14:53
205
原创 const关键字
const修饰指针时分为常量指针(例如int * const ptr)和指针常量(例如const int * ptr)两种情况。为方便记忆,可简化为const在指针变量名称前时为常量指针,指针指向的内容不可被修改 ,在类中被const修饰的成员函数被称为常成员函数,常成员函数只能调用常成员变量及常成员函数,确保成员变量不被修改。const修饰的变量不可被修改(C语言中局部const变量是可以通过指针修改的,此处在本文章尾特殊说明)。const在指针类型前,为指针常量,指针所指类型不可被修改。
2024-03-05 00:58:12
295
原创 CEF嵌入记录
CEF较新的发布版本中对跨平台的支持非常好,官方提供了针对windows、mac、linux的发布版本,其中包含了arm架构的发布(这在某些应用场景下十分重要),附上官方发布版本下载地址。要注意系统版本兼容问题,最新的发布中只支持win10、macOS10.15、ubuntu20.04以上,如要适配某些低版本系统,需要下载旧版本或者你自己做适配(不建议,别问为啥...)具体的封装细节可以参考官方提供的案例,后续有机会可以详细写下。最近公司的项目中需要用到CEF,在此做下记录。
2024-01-08 01:04:59
908
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人