![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux下cpp开发
文章平均质量分 61
本专栏专门用于记录和总结:linux下cpp开发遇到的错误or问题or难点
Fanfan21ya
累积所学所思,累积时间,冲冲冲~
展开
-
Linux系统编程之信号
本篇博客所回顾的知识(学习目标):一、信号介绍1 信号的概念原创 2022-03-19 15:22:29 · 1701 阅读 · 0 评论 -
Linux系统编程之进程通信
文章目录系列文章目录前言一、进程间通信(的概念)是什么?1.1 什么是进程间通信?1.2 进程间通信的方式?二、管道-pipe2.1 管道的概念2.2 管道的原理2.3 管道的局限性2.4 创建管道-pipe函数2.5 父子进程使用管道2.6 管道练习2.7 管道的读写行为2.8 如何设置管道为非阻塞的?2.9 如何查看管道缓原创 2022-03-17 22:40:24 · 734 阅读 · 0 评论 -
Linux系统编程之waitpid函数详解
5.1 为什么要进行进程资源的回收当一个子进程退出之后,该进程能够回收自己的用户区的资源,但是不能回收内核空间区的PCB(process control block 进程控制块)资源。(即:子进程无自己本身法完成对内核的PCB资源的回收,此时就会非常浪费linux系统的资源了!)这个子进程内核区的PCB资源必须得由它的父进程,调用wait 或者 waitpid函数完成对其子进程的回收,从而避免了对系统资源的浪费!5.2 孤儿进程...原创 2022-03-10 19:09:34 · 4280 阅读 · 1 评论 -
Vscode之remote-ssh服务器时解決需要重复输入密码问题
因为在vscode上我每次打开文件夹时都需要输入密码实在是太麻烦了,所以设置了一下无需重复输入密码。本机:Windows10服务器:Ubuntu20.04 LTS解决方法:在你的windows上,打开终端命令行,输入命令cmd: 步骤《1》输入ssh-keygen(连续按下3个回车enter键)创建公钥(id_rsa.pub)和私钥(id_rsa)(当然,若你在上github时已经创建过了,那么此步骤可以略过!)步骤《2》使用命令scp在 Wind...原创 2022-02-27 21:42:49 · 7185 阅读 · 0 评论 -
makefile报错:missing separator (did you mean TAB instead of 8 spaces?). Stop.
问题描述:我直接用的复制黏贴把别的makefile文件直接创建出新的makefile文件时,出现了制表符Tab错误!原因:因为makefile中,书写命令时,必须要在命令开头敲一个Tab键,而不能说用8个空格(space)来代替Tab,虽然看起来样子是一样的,但是它们不会生效为真正地makefile命令!(可以看到直接复制的话命令行都是白色的,表示不生效的意思!)解决: way1:别在Xshell中用鼠标右键的复制黏贴,并且使...原创 2022-02-27 17:45:36 · 7740 阅读 · 0 评论 -
Linux系统编程之我的学习笔记1
gcc(g++)的工作流程:1 预处理:调用cpp的预处理器,do的工作是:去掉注释,展开头文件,宏替换 gcc -E test.c -o test.i2 编译:gcc将源代码文件编译为汇编语言代码 gcc -S test.i -o test.s3 汇编:as,将汇编语言代码编译为了二进制文件(目标代码) gcc -c test.s -o test.o4 链接:ld,链接test.c代码中所调用到的库函数 gcc -o test.o test//要是想一步到位,d...原创 2022-02-08 01:29:36 · 1060 阅读 · 0 评论 -
fatal error LNK1169: 找到一个或多个多重定义的符号
今天遇到一个关于代码规范不好而导致的小Error!自己折腾了一会儿才解决,故用这篇博客记录一下!在windows下写Cpp代码遇到以下错误时:1>------ 已启动生成: 项目: Project3, 配置: Debug x64 ------1>rational.cpp1>LINK : 没有找到 E:\C++learning\C++并发与多线程编程\Project3\x64\Debug\Project3.exe 或上一个增量链接没有生成它;正在执行完全链接1>rati原创 2021-12-28 22:34:21 · 16371 阅读 · 0 评论 -
在windows下使用Vscode用CMake..命令编译源代码时候遇到的问题之解决办法
由于我在windows下用Vscode总是不记得如何deal这个错误,因此今天就用这篇博客记录下来!在windows的Vscode这个IDE下,打开终端,输入命令行:C:\Users\11602\Desktop\test\build> cmake ..报错:-- The C compiler identification is unknown-- The CXX compiler identification is unknown...原创 2021-12-24 19:04:58 · 8161 阅读 · 1 评论 -
在linux下用vscode结合CMake来编译含有多线程库的源文件时要注意的问题之2
个人认为,cmake可以在学习coding的这个过程中遇到不会的再去学习和总结记录!今天我又学到了在linux下,还有一种比较万能的通用CMakeLists.txt的写法:(用这篇博客记录一下)(当然,如果你要在linux上引用什么thread类,还有别的库的源代码来用的时候,就肯定不止是这几条cmake代码这么简单了哈,到时候遇到了我再边用边学习即可了!)废话不多说,直接上代码:CMakeLists.txt:cmake_minimum_required(VERSION X.X.X)//原创 2021-12-19 22:32:49 · 707 阅读 · 0 评论 -
在Ubuntu下无法用ubuntu software 来安装*.deb文件时的问题
问题:在ubuntu下点击vscode的安装文件(后缀名为.deb文件)却无法安装ubuntu software显示错误:failed to install file:no support当你在Ubuntu下无法用ubuntu software 来安装XXX.deb文件时,可以用命令行来deal:命令:sudo dpkg -i XXX.deb ...原创 2021-12-19 15:17:22 · 616 阅读 · 0 评论 -
在linux下用vscode结合CMake来编译含有多线程库的源文件时要注意的问题
当我们在linux下用vscode进行多线程编程的时候,我们会用到<thread>这个包下的类和函数,但是如果不对CMakeLists.txt这个文件做修改的话,就非常容易导致编译出错!比如:in function `std::thread::thread<void (&)(int const&, char*), int&, char (&) [16], void>(void (&)(int const&, char*), i原创 2021-12-18 20:06:56 · 1869 阅读 · 1 评论 -
C/C++ linux 多线程编程报错 :undefined reference to `pthread_create‘
最近在做linux环境下编程时发现,在使用 C++ 11 中的线程类std::thread时,出现了下面的错误,这里做个笔记记录下。demo 代码:#include<iostream>#include<thread>using namespace std;void func(){ cout<<"llalal"<<endl;}int main(void){ thread mthd(func); mthd.join(..原创 2021-12-18 17:33:36 · 5065 阅读 · 0 评论 -
linux下写CMakeLists.txt以及json调试配置文件的学习总结(很重要)
一般而已,一个Cpp项目我们都不是直接用g++编译器去编译的话,因为这样干不通用,而且遇到稍微大型点的项目手写g++命令行是件很复杂的事情。因此,我们必须要手写CMakeLists.txt去再使用cmake命令来生成对应的MakeFile来帮助我们编译器源文件和链接头文件产生可执行程序。cmake_minimum_required(VERSION X.X.X) #指定项目使用的cmake的最低要求的版本#在linux终端下可用 cmake --version来查看...原创 2021-12-16 21:40:31 · 2894 阅读 · 0 评论 -
为多态基类定义纯虚析构函数时必须给其一个空实现代码
今天coding时遇到一个大问题,这个问题之前在看Effective C++中的条款term07时遇到过!今天总结记录一下!方便日后再次遇到时可以反应过来!请看以下代码:gun.h和gun.cpp://gun.h#pragma once#include<iostream>#include<string>using namespace std;class Gun{public: string m_gunName; int m_...原创 2021-12-16 17:23:34 · 779 阅读 · 0 评论 -
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function `_start‘
对于这个错误,不用想太多,一定是你再使用Vscode时没有事先保存这个.cpp/.c源文件就用g++ xxx.cpp -o xxx / gcc xxx.c -o xxx 来生成可执行文件导致的!hell.cpp:#include<iostream>using namespace std;int main(int argc,char **argv){ cout<<"hello,world!"<<endl; return ...原创 2021-12-16 11:38:46 · 12021 阅读 · 13 评论