M1mac 使用 qemu 配置 archlinux 虚拟机的完整c++开发环境与踩坑指南
写在前面
之前写了关于 qemu 安装 archlinux 的文章, 但是还有一些内容没得到解决, 比如很多时候 ssh 连接不成功, 这时候用图形界面(默认选项)的优势就体现出来了, 并且如果需要传输文件或者需要使用对外的端口, 仅转发一个22端口是不够的, 最后就是 gdb 调试的整套环境的配置, 这些问题都要解决.
因为服务器太贵了, 也不想续费, 还是本地老老实实跑qemu虚拟机吧…
qemu 的配置-完善版
之前的配置
#!/usr/bin/env bash
diskfile="$HOME/Documents/archlinux-x86_64-cc.qcow2"
# if [ $# -ne 1 ]; then
# echo "USAGE: $0 dis...
Gdb 日志记录不显示到屏幕的方法(gdb13最新版)
写在前面
gdb 的更新好快啊…
之前的选项都有改动了, 比如 logging..
需要屏幕重定向不能简单设置:
set logging on
set logging redirect on
了, 而是要多开一个配置, 踩坑了
方法
在此之前先看一下我的 gdbinit 配置:
set debuginfod enabled off
set pagination off
分别用于设置自动下载 Debug 信息和禁止分页(否则显示完一页之后就结束了)
步骤
[arch@archlinux gdb_test]$ gdb /bin/ls
GNU gdb (GDB) 13.2
Copyright (C) 2023 Free Software Foundation, In...
Neovim下java 开发的最佳实践
写在前面
秋招基本上结束了, C++算是告一段落, 但是学习之路才刚刚开始.
下面写一下 Nvim 上 Java 开发的一些基本配置, 还是延续了以往的轻量级开发环境搭建方法, Nvim 的配置可以看我之前的文章.
光会 C++不行, 后端语言还得看 Java/Go
下面的配置主要针对 Java 开发的代码补全, 代码格式化等操作, 用到的插件是
clang-format(没错, 这个万能插件可以格式化 Java)
nvim-jdtls(相当于是对 eclipse-jdtls 的一层封装, 比较好用的, 之所以不用 java-language-server 是因为这个插件的维护还是差点意思)
参考了 GitHub 的一些文档:
mfusseneg...
Cmake学习(一)基本命令
写在前面
随着C/C++项目越来越大, 项目管理也变得复杂起来, 之前一直使用的是一行编译命令, 但是这样逐渐变得复杂起来, 之后接触到了make, 虽然比较方便了, 但是还是要记住很多的命令与逻辑, 由于我用CLion比较多, 其内置的就是采用cmake进行项目管理, 这里就深入总结一下Cmake了.
基本命令
I/O
message
参考
M1mac开启x86_64命令行archlinux虚拟机的最佳实践(qemu)
写在前面
UTM 虚拟机可以卸载了, 命令行才是永远滴神, M1 MacBook Air 又能再战了!
之前一直用 UTM 的虚拟化开启 x86_64 的 Linux 虚拟机的, 但是我发现 UTM 好像不是必须的, 只要有qemu 就可以了, 下面就看看如何不通过图形界面前端(UTM)开启虚拟化支持, 这里主要用到的软件就是 iterm, Mac 下最强的终端模拟器.
准备工作
brew
最强包管理器, 安装
brew install qemu
下载 qcow2 格式的 archlinux 虚拟机磁盘文件
下载链接:
archlinux-images-latest安装包下载_开源镜像站-阿里云;
这里要注意, 这个虚拟机开启之后是需要密码登录的, 参考:
...
C++容器的迭代器失效情况总结
写在前面
序列式容器
vector
动态数组的迭代器失效本质上是扩容机制引起的, 看下面的实例代码:
#include <vector>
#include <format> // c++20
#include <iostream>
using namespace std;
vector<int> arr{1, 2, 3};
auto IFS = string(20, '=');
auto it1 = arr.begin();
auto it2 = arr.begin() + 1;
void get_info() { // 输出容器信息和迭代器是否失效
cout << format("size={}, ca...
Python 的 io 函数总结
写在前面
总结一下两者的区别, 最后发现实际刷 ACM 题目还是用 input()方便快捷一些.
sys.stdin
In [1]: from sys import stdin
In [2]: for i in stdin:
...: print(f'={i}=')
...:
123
=123
=
input()
In [1]: print(f'={input()}=')
123
=123=
共计 455 篇文章,57 页。
您是Zorch的第 个小伙伴
Hits