- 博客(299)
- 资源 (12)
- 收藏
- 关注

原创 Linux 编写 configure.ac 和 Makefile.am 示例
我们知道configure.ac可以生成configure文件,而Makefile.am可以生成Makefile,之所以这么做就是为了适应不同的环境需求我已经写好了一个示例,目录结构如下我想在src的文件夹编译一个静态库,叫libfoo.a,基于c.c、d.c、c.h、d.h生成我想用a.c编译一个程序叫做test,并引用了上面的 libfoo.ac文件代码(不是很重要)configure.acMakefile.am (外层)src/Makefile.am前提假设大家...
2022-07-14 16:46:06
4891

原创 linux gcc 编译找不到头文件,找不到库
找不到头文件解决方式1、把头文件路径写成绝对路径,把路径写全,如#include "/usr/include/stdio.h"2、软链接到include默认路径下,或者直接拷贝# 符号链接ln -s /usr/include/ffmpeg/libavcodec/ /usr/include/# 直接拷贝cp -r ffmpeg/* /usr/include/cp -r ffmpeg/libavcodec/ ./注意,删除符号链接文件夹使用# 无论是删除符号链接文件
2022-05-20 10:51:12
20439

原创 一些常用技巧
linux篇1、linux操作会话容易过期(临时设置)unset TMOUT# 或者TMOUT = 999992、打印文件描述符lsof -p pid3、源码编译只有configure.ac文件如何编译源码目录下只有configure.ac文件和Makefile.am文件的工程 - 克林斯顿 - 博客园4、定位文件路径locate 定位文件名字5、返回上一次cd的目录cd - 6、系统服务位置cd /lib/systemd/system7、
2021-11-02 14:38:50
283

原创 Linux下的C语言程序的调试(附案例)
写在前面 本文以将gdb调试为主,顺便提一下strace和valgrind。正文strace 个人感觉跟gdb相比,strace更偏向于查看,查看某程序的系统调用有哪些,统计系统调用的次数以及消耗了多少时间,还可以追踪信号。gdb总览 gdb可以直接调试程序,也可以将程序和core文件一块调试,也可以调试服务程序,只需要指定对应服务程序的进程id就行了...
2020-03-22 17:11:05
3745

原创 校招C++学习的一些书籍和网站
写在前面: 其实要进入计算机行业,最好是要科班出生,在校接触过一些正规课程比较好,这样自学起来看书比较容易。不过如果自制力好的话,改行去哪都行,我见过最牛的大佬,某985本硕地球物理学毕业,C++就入门,后来靠着自学照样收割各大企业的offer。书籍:C++学习:基础:《C++ primer》提高:《Effective C++》 《More Effecti...
2020-03-11 12:07:45
374

原创 校招C++必会知识清单
多学习,多总结C++:C++基础语法(包括不限于const,static,inline,指针,数组,引用,new,malloc,宏定义,define) C与C++的区别和联系 STL各自容器的使用及内部的实现 C++11特性 C++的特性,继承、封装和多态,多态又有静态多态和动态多态 虚函数,虚函数指针,纯虚函数 四种强制转换 四种智能指针 成员函数的重载覆盖和隐藏 浅拷...
2020-03-10 11:14:42
655

原创 新安装的Linux常用命令汇总
这里以Ubuntu为例。1,root用户获取和创建用户获取root用户参照https://jingyan.baidu.com/article/fd8044fa1e74035031137ae0.html创建用户参照https://blog.youkuaiyun.com/timothy93bp/article/details/77679000https://www.cnblogs.com/...
2019-10-22 15:02:47
423
原创 PyCharm 导入本地包目录
现在我工程目录下有个 gen-py 文件夹,这是我 thrift 编译出来的 Python 依赖包。重进一下 PyCharm 就行了,之后正常 from import 导入包就行了。但是这样写,PyCharm 没有提示,还老报错,所以我右键标记为源代码目录。使用的话,我们可以在代码里加入系统路径。PyCharm 是最新版。
2024-11-07 14:42:45
926
原创 C++ 报错 first defined here XXXXX multiple definition of XXXX
3、我最近发现的,我本来是要包含 AAA.h 的,写成了 AAA.cpp,导致了上面的报错(我是从报错提示的函数对应的头文件 AAA ,进而发现了我写错的 #include)1、首先检查下是不是真的重定义了,检查下报错提示的函数,以及提示的路径位置。2、头文件被多次包含时,没有设置只包含一次。头文件用宏定义包含,注意宏定义别重复。
2024-11-02 22:11:42
525
原创 ModuleNotFoundError: No module named ‘ttypes‘
Python 引用 thrift 编译后的 gen-py 报错 ModuleNotFoundError: No module named 'ttypes'1、方法 1,Python 解释器调整为 2.7 版本,来源。2、方法 2,调整 import 名称,来源。
2024-09-09 17:24:04
331
原创 C++ 当不同依赖有相同文件夹
比如我用的 cmake,我的 CMakeLists 用 include_directories 包含头文件时,先引用的 B 的头文件,那最终使用的就是 B 的头文件,遵循一个先来后到原则,先声明的优先使用,后面再声明 C 的头文件引用也没用。这个时候,我们使用的是哪个依赖库里的头文件呢,这跟我们的编译声明顺序有关。假设这样一个场景,工程 A 依赖第三方库 B 和 C。A 的 main 函数使用了。
2024-08-29 19:17:21
217
原创 C++ 解决要编译的工程和依赖工程重名文件夹的问题
假设这样一个场景 A 是待编译主要工程,B 是依赖的三方库A 的目录树是B 的目录树是我的 A 编译的时候,指定引用了 B 的头文件(include 文件夹),然后 A 的 main.cpp 写了这个时候,就不知道用的 A 还是 B 的 base_type.h 了。
2024-08-28 17:18:05
258
转载 蠕虫悖论解释
如果是拼接绳子的计算逻辑应该是 (1 * k) / (100 * k),k 是走过的时间秒,蠕虫的位置跟绳子总长的比例永远保持在 1/100 < 1 永远到达不了末端。相当于在第 2 秒走了 2 厘米,那么第 3 秒就会走 3 厘米,后面越走越快,迟早要 1 秒走 1 米,并超过绳子的拉伸速度。但是,按照前面链接的计算逻辑,1/100 + 1/200 = 3/200 > 2/200。第一秒:蠕虫爬了全绳长的1/100,第二秒:蠕虫爬了全绳长的1/200……按照常人逻辑,第一秒走了 1 厘米,第二秒就(
2024-07-22 19:52:23
154
原创 Mac 息屏不断网
另外一个地方是锁定屏幕——延长关闭显示器的时间(让显示器不黑)我调整了两个地方,一个是电池——选项——唤醒以供访问。这里息屏指的是屏幕不黑,屏幕黑了好像必断网。我的系统是 14.5。
2024-07-15 19:24:25
4549
原创 Mac/Linux getline 无法读取文件内容(读取内容无法显示)
经过我的研究,我发现读取每行的内容里末尾有个 \r,在 ASCII 码里是 13,有这个 \r 就会导致读取的每行的内容无法正常打印,而在 linux 上是能正常识别 \r 的。我发现我读取的文件每行的 line 是有大小的,说明读取到了每行的内容,但是通过 cout 打印就是空的。不知道是 mac 的问题还是 clion 的问题,如下面代码。所以解决办法就是删除每行的 \r 就能正常显示了。
2024-05-28 16:38:16
456
原创 gdb 进阶使用记录(主要是关于 optimized out)
如果 gdb 调试发现 optimized out,这个表示被编译器优化了,这个优化跟编译选项有关,gcc 有个 -O0 -O1 -O2 等编译选项,越高等级能看到的信息越少。
2024-04-26 15:08:18
2123
2
原创 vs 撤销本地 commit 并保留更改
没想到特别好的办法,我想的是用 vs 打开 git 命令行工具,然后通过 git 撤销提交,尝试之前建议先建个分支实验,以免丢失代码。
2024-01-29 18:00:44
626
原创 cpp-stub 打桩失败
我遇到的是 inline 函数打桩失败,因为官方说明有个 -fno-inline 的编译选项我没看到,导致打桩失败。我这个是纯属我自己的原因,官方有列举有些场景下不能打桩。
2024-01-29 17:55:25
461
原创 mac 聚焦搜索不显示
我检查过快捷键之类的设置,都正常,最后是通过删除文件解决的。我是连搜索框都不显示,不是搜索结果显示异常。点右上角的搜索按钮都毫无反应。
2023-11-29 14:30:36
1498
2
原创 社保小记载
社会保障号和社保卡号都印在实体社保卡上面,社保卡号印在实体卡的。据说不是着急退休的话,可以最后(到退休)再转移。里面有个职工医疗保险关系异地转入申请。号是身份证号,社保卡号是单独的号码。
2023-11-22 19:42:52
135
转载 Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
解决办法就是安装指定的 protobuf 版本。
2023-11-22 15:37:32
1569
2
转载 C++ threadlocal 和局部变量区别
threadlocal 在代码中定义后,在不同的线程中会有不同的副本。如果使用局部变量去写这个代码,应该是这样,不是完全等价,但是意思一样。
2023-11-20 19:05:19
129
转载 chatgpt 记录
3、chatgpt 登陆界面都进不去(或者只有黑白字还没图片),f12 显示 403,因为进入 chatgpt 官网之前,会先进入 cdn,cdn 拦截了,其实也是锁 ip,不过是 cdn 锁的,跟 2 不一样(当然这只是 403 的原因之一)2、提示 ChatGPT Not available in your country,因为锁 ip (chatgpt 官网锁的)同一个 ip 请求限制(这个 ip 访问 chatgpt 官网的次数),有人说是普通用户和会员导致。1、聊天界面卡主,f12 显示。
2023-11-16 20:41:17
194
转载 mac 三指左右切换应用失效
1、首先我三指上划是没问题的,也设置的是三指切换应用不是四指。的窗口有效,我是双击最大化的窗口,就三指左右滑动就切不了应用。2、我这次不是设置问题,是因为三指切换应用只对。
2023-11-15 16:07:45
3772
转载 Linux 不更换 glibc 运行高版本的可执行程序
比如 Centos 7 支持的最高 glibc 版本是 2.17,但是我有一个可执行程序 clangd,它最低需要 glibc 2.18 版本,升级 glibc 影响太大,但是我又想运行 clangd (前提 clangd 只差 glibc,不是差非常多库)
2023-11-03 10:23:36
436
原创 Pycharm v2023.1.2 关闭项目卡住
pycharm v2023.1.2,我是清理缓存加本地索引解决的,之前 Pycharm 弹了一个窗,说预下载索引比较快,我点了之后项目就关不上了。设置找到下面这个,改为:不下载,使用本地索引。4、有人说是和插件有关。
2023-11-02 15:44:31
4343
原创 C++ 函数:在相同类型参数情况下返回不同类型值
首先重载是不能做到的,相同函数参数类型前提下,不可能返回不同类型的返回值,但是想弄一些歪招实现这个效果模板不算,因为模板会根据不同的输入参数类型生成不同的函数,就不是调用相同的函数了。
2023-10-28 00:11:43
765
3
原创 mac vscode 使用 clangd
C++ 的智能提示 IntelliSense 非常不准,我们可以使用 clangdclangd 缺点就是配置繁琐,优点就是跳转和提示代码精准开启 clangd 之后会提示你关闭 IntelliSense。
2023-10-26 19:59:41
2484
原创 windows 下 vs code 格式化代码(clang-format)
可以直接把这个 exe 解压,里面有个 bin 目录,bin 目录有个 clang-format.exe (就要这个文件)2、windows 下载 LLVM-17.0.1-win64.exe (exe 结尾的安装包)格式化所有代码:shift + alt + f 或者右键代码空白处,有个格式化代码选项。5、格式化的个性化设置可以通过指定 .clang-format 文件来配置。格式化部分代码:选中部分代码,ctrl + k , ctrl + f。3、配置 clang-format.exe 路径。
2023-09-29 01:00:44
7056
1
原创 mac 13 设置日期显示节假日
2、如果此时你日历上没显示假日,那就点击文件——新建节假日日历。左上角,日历——设置——显示节假日。3、找到中国地区,点击确定。1、确保打开了显示节假日。
2023-09-26 16:27:45
1772
原创 boost 库和 std 库记录
boost::split 是把 string 切分到 vector 里,下面我是按照空格切分的,但是如果有多个连续空格的情况,会把空串扔进 string 里,如果想提取 string 里的单词的话,切分完记得判断一下 vector 里面的 string 是不是空串,也就是长度为零。
2023-09-24 13:33:24
271
原创 mac clion 安装 boost 库
2、clion 工程的 CMakeLists.txt 文件中间添加两行,加在 add_executable 上面。4、如果 cpp 写代码没有智能提示(新加 boost 库),比如下面还是标红,可以尝试重启 clion。我实际上加了三行,多了一个 message 是打日志用的,用于查看是否拿到 include,可以删掉。3、重新构建(清理再构建,或者直接重新构建)(test 是我的项目名)不保证有效,很多教程的 cmake 都是带版本号的。CMakeLists.txt 文件区分大小写。
2023-09-22 15:36:02
542
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人