烈性果汁 - c++
type: channel
link: https://www.nhyilin.cn/tag/c/
items: 小记

小记
type: item
date: 2024-12-10T22:30:00+08:00
description: 最近事情有点多，本想详细记录一下开发遇到的问题，但是好几天实在没空认真记录每个问题，索性以结论形式写一下最近工作和生活中的一些问题和感触。日志库一个软件里没有日志模块简直就是一个大坑。去甲方部署软件，没有开发环境，软件跑不起来，甲方问你问什么，你比他还懵，就会显得很业余。Google的glog库，配置、编译都很方便，而且库文件清爽，但是可定制化不强，格式不太习惯，试用后放弃了。我习惯性用自己封装的boost日志模块，这两天新项目复用时发生了一点冲突，直接写结论，不展开记录了。之前使用的是boost_1_84_0，配置信息如下：cd D:\boost_1_84_0 bootstrap.bat b2 --prefix=D:\custom_boost address-model=64 variant=release toolset=msvc-14.0 --with-log install但是模块引入到项目中编译会报错：Error C2039 '_snprintf': is not a member of 'std'最开始我下意识觉得是版本太新，然后boost库回退到boost_1_65_1（依据vs2015和Qt5.10发布的时间进行选择），依旧无法解决。最后在stackoverflow和boost的GitHub仓库上找到了类似的提问，但是没有解决。问题发生是在包含Boost之前，已经在某处定义了# snprintf _snprintf, 导致编译报错。具体是哪就要看项目引用哪些头文件或者库了，像是某个和python相关的库，所以有的项目可以直接复用封装的log模块，而有的项目则报错。最终在预编译头文件里声明了#undef snprintf，并且只有在最新版本boost_1_86_0这个问题得到解决。cd D:\boost_1_86_0 bootstrap.bat b2 --prefix=D:\custom_boost address-model=64 variant=release toolset=msvc-14.0 --with-log installmysql说只记结论，还是唠叨一大堆，表达能力不行的体现，得改。用c链接库的方式连接mysql，如果在my.ini中配置了：[mysqld] bind-address = 0.0.0.0并且项目以localhost形式访问数据库，会导致数据库访问速度变慢，并且偶尔会出现连接超时的情况。较好的形式是不修改my.ini，而是在mysql中执行:GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;可以达到相同效果，且速度也会快很多。具体原因是重定向的问题，不再展开。emmmm一定还有其他问题，印象中还有很多，但是一时间想不起来了，想起来再补充吧。乒乓球最近打球依旧快乐，只是和有些球友打球不再快乐了。一个个号称快乐乒乓，交朋友的口号，还有堂而皇之说是提高技术什么的，本身都没问题，烦人的是打起来净整一些有的没的，真累挺。低头不见抬头见的，能怎么着。干。