
Linux
文章平均质量分 54
金色熊族
这个作者很懒,什么都没留下…
展开
-
CMake学习笔记(五)区分PROJECT_SOURCE_DIR, CMAKE_SOURCE_DIR和CMAKE_CURRENT_SOURCE_DIR
2.2 如果子目录的CMakeLists.txt没有使用project命令,则PROJECT_SOURCE_DIR等于上一层CMakeLists.txt的PROJECT_SOURCE_DIR。不论CMakeLists在根目录还是子目录,也不论CMakeLists.txt里面有没有调用project函数,CMAKE_SOURCE_DIR都等于根目录路径。1 根目录下的CMakeLists.txt的PROJECT_SOURCE_DIR等于根目录路径;sub2目录下的CMakeLists.txt。原创 2025-04-26 17:28:39 · 412 阅读 · 0 评论 -
linux源码编译libunwind
下载libunwind的源码。我选择9.0.0版本。原创 2024-12-22 20:09:26 · 423 阅读 · 0 评论 -
源码编译glibc2.18过程记录
在某些操作系统里,libc.so.6没有debuginfo,影响我使用valgrind/systemtap调试。为此,我决定用源码编译一个与当前已有的libc.so版本相同的libc.so.6,并附带debuginfo。以下是过程记录。原创 2024-12-12 18:35:49 · 407 阅读 · 0 评论 -
源码编译安装perf
本文介绍如何通过源码编译的方式实现perf的安装。依赖安装完毕后,make clean,然后从新make perf。7 编辑~/.bashrc,在.bashrc的PATH加入/usr/local/bin。6 make结束后,将产生的perf拷贝到/usr/local/bin。在make过程的一开始,可能会检查依赖的情况。如下图所示,这里面,9 检查perf版本,有输出则安装成功perf --version。对于中标麒麟,虚拟机,版本是linux-4.4.13。,通过elfutils安装,参考我的博客。原创 2024-11-14 22:08:52 · 731 阅读 · 0 评论 -
CMake学习笔记(四)cmake --build使用踩坑记录
将在目录中产生结果文件。但是实测发现,这里有坑:如果CMakeCache.txt等文件没有产生在中的话,cmake --build 将报错。只有先在目录下执行cmake ..,使得CMakeCache.txt产生在中,cmake -build 才能起作用。编译结果最终产生在build目录下。原创 2024-10-10 19:39:05 · 2135 阅读 · 0 评论 -
CMake学习笔记(二)从PROJECT_BINARY_DIR看外部编译和内部编译
1 从哪个路径执行cmake命令,变量PROJECT_BINARY_DIR就等于这个路径2cmake产生的中间文件、结果文件都保存在与CMakeLists.txt一起的路径下,这叫做内部编译。反之,两者分开的,就是外部编译。3 ADD_SUBDIRECTORY的第二个输入参数指定了cmake产生结果文件的保存路径。假如不指定这个输入参数,则用来存放编译结果的文件夹就是${PROJECT_BINARY_DIR};原创 2024-03-26 22:14:43 · 1285 阅读 · 0 评论 -
CMake学习笔记(一)一个最简单的CMakeLists嵌套示例
这里,src文件夹需要稍后手动建立,因为在cmake之前,src里面要放进去源码。但是bin文件夹不需要手动建立,因为cmake过程中会自动建立bin。bin用来存放编译产生的结果文件。bin只是习惯的名称,你也可以换个名字,如bin1。这里顺便讲一下ADD_SUBDIRECTORY的用法它的第一个输入参数是用来存放源代码的文件夹,第二个参数是用来存放编译结果的文件夹。第二个参数可以输入,也可以不输入。原创 2024-03-26 21:00:12 · 854 阅读 · 0 评论 -
linux 安装docker
阿里云 ubuntu 22.04 64位。原创 2024-02-15 16:02:48 · 602 阅读 · 0 评论 -
linux源码编译安装llvm
本文受了的启发操作系统:银河麒麟虚拟机,安装前,保证操作系统已经安装cmake。原创 2024-01-23 09:00:00 · 2529 阅读 · 0 评论 -
Linux源码编译python3(以及必要的依赖包libffi)
安装完成后,libffi.so安装在/usr/local/ib中。由于银河麒麟已经预装了python2.7,所以要把新的python与旧的区别开。的说法,解决办法是安装libffi。下面通过编译源码安装libffi。确认/usr/local/lib出现在ld.so.conf中。完成这一步,你就可以看到python3的版本号了。6.6.1 建立python3的软链接。6.6.2 建立pip3的软链接。6.2 解压,并进入解压后的路径。2 解压源码,进入解压的路径。1 下载python3源码。原创 2024-01-20 17:39:25 · 2707 阅读 · 0 评论 -
linux源码编译安装ninja
你需要安装的基本的依赖项有:git、autoconf、automake、libtool、make、cmake,python。除了python是操作系统预装的以外,其他的软件的源码安装办法均见我前面的博客。我的银河麒麟虚拟机上预装了python2.7。考虑到最新的ninja要求python3,我使用了一个较老的ninja版本ninja 1.11.1,以适应python2.7.这个re2c也可以用源码安装,不过不安装re2c也不影响ninja的安装。5 将ninja拷贝到/usr/bin/原创 2024-01-20 00:33:00 · 3225 阅读 · 0 评论 -
linux编译源码,安装valgrind
2 在虚拟机上解压。我使用的虚拟机是银河麒麟。下载了valgrind 3.22.0源码。3 进入解压的目录,执行。5 检查安装是否成功。原创 2024-01-19 15:50:45 · 1044 阅读 · 0 评论 -
安装libX11过程记录
目录编译平台准备工作参考信息源安装步骤1 建立文件夹/opt/libX11target2 定义环境变量PKG_CONFIG_PATH3 安装xproto-7.0.313.1 下载xproto-7.0.313.2 解压3.3 进入解压后的文件夹3.4 建立build文件夹3.5 cd build3.6 配置3.7 make3.8 sudo make install4 安装xextproto-7.3.04.1 下载xextptoro4.2 解压4.3 进入解压后的文件夹4.4 建立build文件夹4.5 c原创 2023-10-10 22:45:16 · 2824 阅读 · 0 评论 -
对一条Linux命令的解读(sed find egrep)
在前面的博客中,我使用了一条指令解决了一个关于Werror的错误。原创 2023-10-02 23:56:54 · 439 阅读 · 0 评论 -
linux平台源码编译ffmpeg
中标麒麟。原创 2023-10-01 16:03:59 · 576 阅读 · 0 评论 -
源码编译安装systemtap
阿里云ubuntu20.04。原创 2023-09-30 16:11:16 · 444 阅读 · 0 评论 -
源码编译elfutils
7 sudo make install 安装完毕。1 下载elfutils-0.170源码。编译环境 阿里云ubuntu20.04。6 再执行一遍make。原创 2023-09-30 15:12:49 · 1417 阅读 · 0 评论 -
源码编译安装zstd
目录1 下载源码https://github.com/facebook/zstd2 解压3 在解压后的目录里输入make4 sudo make install 安装完毕5 输入whereis zstd 检查安装结果原创 2023-09-29 23:25:48 · 3075 阅读 · 4 评论 -
源码编译安装pkg-config
7 sudo make install 完成。3 进入解压后的目录。原创 2023-09-28 23:57:32 · 1309 阅读 · 0 评论 -
源码编译安装automake
下载automake 1.11源码。原创 2023-09-27 21:38:10 · 640 阅读 · 0 评论 -
源码编译tcpreplay,及使用方法
下载源码解压make。原创 2023-09-27 11:06:37 · 584 阅读 · 0 评论 -
客户端远程启动服务器脚本文件
有两台计算机,一台是linux客户端,另一台是linux服务器。要求操作员可以在客户端远程启动服务器上的脚本文件,控制服务器。方法一、二有共同的问题,那就是要操作员手动输入登录密码。ssh登录后,通常操作员会处于服务器的~路径下。通过ls命令,你会看到生成的id_rsa.pub id_rsa。客户端通过ssh登录服务器,然后通过./脚本名 启动脚本。为了实现免密码操作,还要在客户端和服务端都安装密钥。首先在客户端~路径下, cd .ssh。直接在服务器的~路径下建立一个脚本。原创 2023-08-15 00:55:47 · 382 阅读 · 0 评论 -
源码编译安装git过程记录
源码编译安装git过程记录原创 2023-04-13 13:23:04 · 847 阅读 · 0 评论 -
源码编译tcpdump过程记录
源码编译tcpdump过程记录原创 2023-04-06 12:45:38 · 759 阅读 · 0 评论 -
gdb调试指令next与step的区别
示例:调试运行到main.cpp的第11行,输入next,单步到12行,而不是进入11行的函数f()下图:即将通过11行。下图:即将通过11行。下图:进入函数f()原创 2023-01-20 17:28:58 · 688 阅读 · 0 评论 -
gdb使用简介
与start不同,启动run之后,gdb不会停留在main函数的第一条语句里,而是直接停留在第一个breakpoint上。第5行就是main函数的第一条语句。从断点的位置继续执行,直到下一个断点。假如只有工程只有一个cpp文件,只用。原创 2023-01-19 21:03:02 · 2184 阅读 · 0 评论 -
QSqlRelationTableModel使用示例
QSqlRelationTableModel使用示例原创 2022-11-06 16:12:27 · 910 阅读 · 0 评论 -
linux命名管道fifo通信示例
linux命名管道fifo通信示例原创 2022-10-29 19:58:08 · 2295 阅读 · 0 评论 -
qt使用QProcess实现进程通信
qt使用QProcess实现进程通信原创 2022-10-27 17:54:26 · 2248 阅读 · 0 评论 -
echo -e <<EOF $()三种操作的意义
echo -e原创 2022-10-25 16:46:30 · 2528 阅读 · 0 评论 -
shell输出重定向
shell输出重定向原创 2022-10-25 14:33:24 · 1902 阅读 · 0 评论 -
shell 的source指令和.指令
shell 的source指令和.指令原创 2022-10-24 20:11:47 · 1458 阅读 · 0 评论 -
shell命令的退出状态码(exit status)
shell命令的退出状态码(exit status)原创 2022-10-24 09:49:18 · 2524 阅读 · 0 评论 -
从零开始学习makefile(9) makefile的DESTDIR变量
从零开始学习makefile(9) makefile的DESTDIR变量翻译 2022-10-22 20:39:25 · 879 阅读 · 0 评论 -
从零开始学习makefile(8) gcc -MM的作用
从零开始学习makefile(8) gcc -MM的作用原创 2022-10-22 20:20:48 · 1049 阅读 · 0 评论 -
shell 命令set -e的作用
shell 命令set -e的作用原创 2022-10-22 20:08:43 · 1188 阅读 · 0 评论 -
从零开始学习makefile(7) makefile的filter的作用
从零开始学习makefile(7) makefile的filter的作用原创 2022-10-22 11:58:30 · 1514 阅读 · 0 评论 -
从零开始学习makefile(6)makefile的subst的作用
makefile的subst的作用原创 2022-10-20 19:39:22 · 226 阅读 · 0 评论 -
从零开始学习makefile(5)makefile中patsubst的作用
makefile中patsubst的作用原创 2022-10-20 17:59:22 · 1595 阅读 · 0 评论 -
从零开始学习makefile(4)makefile中%、$@、$<、$^的作用
makefile中%、$@、$原创 2022-10-20 15:26:54 · 3201 阅读 · 0 评论