Linux开发环境配置总结【Ubuntu22 VScode Mobaxterm】

张开发
2026/4/11 20:07:55 15 分钟阅读

分享文章

Linux开发环境配置总结【Ubuntu22 VScode Mobaxterm】
文章目录前言按照名称找这些资源安装ubuntu 22 server的一些注意事项MobaXterm连接虚拟机VSCode相关的环境配置--------会用到的扩展--------VSCode的配置文件--------VSCode中进行编译--------VSCode中进行debug--------VSCode遇到的SSH连接问题(failed to fetch)--------虚拟机磁盘空间的扩展DPDK的环境搭建--------多队列网卡的查询与设置--------hugepage--------DPDK源码--------Samba的配置和启动--------DPDK的setup前言最近在学习linux环境下的C/C开发因为是初学者所以遇到了许多有关环境配置而不是代码该怎么写的问题。趁网络编程学习阶段结束在这里做一个总结后续遇到问题也要添加和修改。按照名称找这些资源开发中用到的软件有VMware Workstation proMobaXtermVScodenetassistwireShark资源ubuntu-22.04.1-live-server-amd64安装ubuntu 22 server的一些注意事项①注意这里的 (x) 表示选中记得勾选openSSH②耗时太久走到这一步直接取消更新重启即可MobaXterm连接虚拟机使用net-tools查看网卡的IP地址sudoaptupdatesudoapt-getinstallnet-tools但是报错了“E: dpkg was interrupted, you must manually runsudo dpkg --configure -ato correct the problem.”那就照做可能是在安装系统时强行关机重启导致的。sudodpkg--configure-a再次尝试安装net-tools即可。使用net-tools的ifconfig指令查看到IP地址打开MobaXtrem连接即可在settings中指定VSCode进行编辑VSCode相关的环境配置--------会用到的扩展方便我们写代码需要安装RemoteSSH并点击左下角连接在弹出的对话框中点击添加新的主机并输入虚拟机中系统用户名IP地址flame192.168.30.128后续弹出对话框 依次选择platform - linux 指纹就是你的虚拟机账号的密码。注意在安装扩展时虚拟机和本地是分开的。为了开启提示功能会用到的扩展C/C 请注意这个并不是编译器只是方便我们编写用的还需另外自行确保虚拟机中有gcc和gdb在虚拟机中sudoapt-getinstallgcc执行后出现图示信息这是 Ubuntu 系统在安装或更新软件包后提示你哪些系统服务需要重启因为这些服务依赖的库文件被更新了不重启可能导致功能异常。直接按回车键确认选择默认的勾选项即可系统会自动重启这些服务无需手动逐个操作。--------VSCode的配置文件要在VSCode中进行编译和debug。可以看到此时我们在VSCode编写时找不到头文件和库文件但是虚拟机的GCC能正常编译并运行。这是因为VSCode的C/C扩展还未正确识别远程主机的系统头文件路径但虚拟机的 GCC 本身是正常的所以命令行能编译运行。解决方法是让VSCode扩展定位到远程主机的GCC系统头文件。ctrl shift p唤出命令面板编辑配置。点击后会在你的项目根目录下生成json配置文件includePath下告诉VScode找哪些目录下的头文件。分别是根目录下包括其子目录的.h头文件include下的头文件gcc内置的头文件compilerPath是gcc的路径使用gcc-v查看到我的gcc version是 11.4.0 使用c17 和 c17即可intelliSenseMode是 VS Code C/C 扩展的关键配置项确保 VS Code 的代码分析和远程主机的 GCC 行为完全一致--------VSCode中进行编译现在不会爆红了接着是编译。打开配置默认生成任务工具栏选择gcc生成活动文件生成task.json文件有了task.json文件我们就能进行编译了快捷键ctrl shifit b--------VSCode中进行debug为了能够添加断点调试首先要在虚拟机装gdbsudoapt-getinstallgdb在VSCoded的运行中添加配置生成lauch.json文件选择gdb启动即可自动生成的字段注意修改program然后在运行中启动调试或者直接在右上角可进入运行和调试debug模式这样不需要手动配置路径了--------VSCode遇到的SSH连接问题(failed to fetch)某天我在打开电脑使用VScode连接我的虚拟机时遇到了无法连接问题。但是MobaXtermSamba这些都能正常工作VScode表现为右下角一直显示VScode在下载本地服务器。报错未能下载VScode服务器其实这就是一个很简单的网络问题我实验室在的楼交换机很差网络问题频发解决这个问题的方法就是在其他电脑上下载后把对应的文件放到虚拟机中的对应位置就可以了。参照这一篇文章即可解决https://blog.csdn.net/w626990886/article/details/148786196--------虚拟机磁盘空间的扩展虚拟机磁盘空间不足可以通过清理日志缓存的方式解决也可以扩展磁盘空间①在vmware workstation右键虚拟机修改硬盘空间。②进入系统确认识别新的容量lsblk③使用parted 扩大分区sudoparted/dev/sda# 进入交互界面后执行(parted)resizepart3100%# 提示警告时输入 Yes/Ignore(parted)quit注意这里的 3 代表你的逻辑卷所在编号请根据 lsblk 实际显示调整我的是sda3-ubuntu–vg-ubuntu–lv④通知内核更新分区表sudopartprobe⑤扩展物理卷让LVM识别底层分区变大了sudopvresize /dev/sda3⑥扩展逻辑卷sudolvextend-l100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv⑦确认结果df-hDPDK的环境搭建DPDKData Plane Development Kit是用于编写用户态协议栈的一种工具。DPDK为了绕开内核协议栈需要多队列网卡的支持。--------多队列网卡的查询与设置ifconfig我的网卡名称为ens33查看网卡对应的中断队列cat/proc/interrupts|grepens33这个样子就是不支持的因为只有一个队列让自己的虚拟机支持多队列网卡①关闭虚拟机②再添加一个桥接模式的网卡用于DPDK的多队列支持因为在第一次设置时我是用了虚拟机唯一的一张NAT模式的网卡结果重启发现我的这张网卡用ifconfig都查不出来。后续查询可能是因为NAT与DPDK的冲突。所以再选用一个桥接模式的网卡同时复制物理网络连接状态。③在虚拟机的本地文件中找到虚拟机名.vmx的文件找不到记得设置显示扩展名。④打开该文件是这个样子我是直接拖到VSCode里面打开的其中ethernet1就是第二张网卡是我们要修的网卡把virtualDev的值改为vmxnet3再新增一条ethernet1.wakeOnPcktRcvTRUE⑤再次重启虚拟机查看网卡队列iplinkshow看到多了一个ens160并且还未处于打开状态那么就把它打开sudoiplinksetens160 up这时再cat/proc/interrupts|grepens160就可以看到如下结果因为我的虚拟机只有两个CPU所以只有两个中断。⑥修改CPU数量为8后重启如下图所示注意虚拟机关机后ens160网卡会默认关闭记得使用以下指令进行检查iplinkshowsudoiplinksetens160 upcat/proc/interrupts|grepens160--------hugepagesudovim/etc/default/grub在红框的key中赋值default_hugepages1Ghugepagesz2Mhugepages1024设置完后更新参数sudoupdate-grub--------DPDK源码下载官网https://core.dpdk.org/download/选一版较为稳定的下载用7-Zip管理员启动并解压在Windows解压会有一些小问题不推荐正确做法是直接把dpdk-19.08.2.tar.xz安装包上传到虚拟机里然后执行指令tar-xvfdpdk-19.08.2.tar.xz--------Samba的配置和启动转移多文件mobaXterm可以做到但是用samba更方便这里仅仅为了顺带说一下Samba的配置方法sudoapt-getinstallsamba更改smb.conf配置文件sudovim/etc/samba/smb.conf[share]就是在驱动器中显示的名字设置commnetpathwriteablebrowseable即可修改share文件夹及其父文件夹可读可写可执行chmod-R777/home/flame /home/flame/share给samba添加用户必须是系统中有的用户sudosmbpasswd-aflame启动samba服务查看其状态按Q退出或者关闭服务sudosystemctl start smbd.servicesudosystemctl status smbd.servicesudosystemctl stop smbd.service右键此电脑映射网络驱动器填写smb的用户和密码即可Tips:把解压后的文件复制到映射文件夹下会遇到权限问题所以直接把安装包下到share里面用7-zip解压可以实现100%的文件获取。同时在启动setup时也要在之前切换到root--------DPDK的setup记得在开始编译前安装依赖NUMA库和设置python为python3的软连接在make时需要有pkg-config这个库sudoaptinstall-ymakesudoaptinstall-ylibnuma-devsudoaptinstall-ypkg-configsudoln-s/usr/bin/python3 /usr/bin/pythonsudosu./usertools/dpdk-setup.sh编译代码前记得设置环境变量exportRTE_SDK/home/flame/share/dpdk-stable-19.08.2exportRTE_TARGETx86_64-native-linux-gcc#在setup的时候选择的gcc根据安装程序提示选择 36 仅第一次编译 43 44 45 46-512 47-512 49注意这里49在绑定网卡的PCIE前要关闭这个网卡最后 60 就完成了DPDK环境的搭建确认网卡的绑定状态在usrtools中运行sudopython dpdk-devbind.py--statushttps://github.com/0voice

更多文章