ubuntu
剑客无名
这个作者很懒,什么都没留下…
展开
-
【Ubuntu】C++匿名函数的使用实例(代码)
// Copyright [2021] <Copyright Ziliu>#include <algorithm>#include <cmath>#include <iostream>#include <vector>// 匿名函数 lambda表达式/*auto func = [=]() mutable throw() -> int { int ret = a + b; a += 1; return原创 2021-01-25 16:04:34 · 302 阅读 · 0 评论 -
【C++】模板类的使用以及实例
1. 前言模板类是用来生成类的蓝图的。通过一个模板,可以节省大量的代码空间和提高开发的效率,本文章将会就模板类举例进行一个简单的实例。2. 用模板类实现一个简单的vector代码目录结构如下:├── main│ ├── BUILD│ ├── main.cc│ └── myvector.h└── WORKSPACE2.1 模板类myvector.h的代码如下注意: 模板类的定义和声明不建议分离编译,否则可能在编译时会导致链接错误,故myvector的声明和实现都定义在同一个文原创 2021-01-20 14:26:01 · 810 阅读 · 0 评论 -
【UBUNTU】bazel编译C++文件,bazel的写法
1. 序言bazel是谷歌提出的新编译工具,目的在于取代现存的make和cmake等老旧的编译工具。其具有相当优秀的编译速度,且使用方法易于上手,下面就来说说怎么使用bazel来编译C++代码。2. bazel的工作目录项目├── main(源代码所在文件夹)│ ├── BUILD│ └── print.cpp└── WORKSPACE==============================WORKSPACE用不上的话,内容可以为空,只象征着工作空间的主目录所在3. baz原创 2021-01-20 14:05:33 · 2758 阅读 · 1 评论 -
【网络编程】Ubuntu下Nginx的安装配置,以及如何实现反向代理的例子
1. Nginx源码安装进入Nginx官网下载需要的版本,本文以nginx-1.12.2版本为例子,下载到了1.12.2的tar包。// 进入tar包所在的目录,并打开终端,执行以下命令进行解压,并进行安装tar -zxvf nginx-1.12.2.tar.gzcd /nginx-1.12.2./configuremake & make install如果缺少相应的库,执行以下sudo apt-get install libpcre3 libpcre3-devsudo apt-原创 2020-11-26 14:37:20 · 262 阅读 · 0 评论 -
【UBUNTU】Linux下配置JDK环境和tomcat环境,简单易懂
JDK源码官网下载ORACLE官网JDK下载, 选择一个你需要的版本,下载对应的tar包。这里我以下图为例子JDK源码解压// 在下载到tar包的目录中打开终端,后执行以下命令解压tar包tar -zvxf jdk-8u271-linux-i586.tar.gz // 将解压出来的文件夹拷贝到/usr/local下mkdir /usr/local/jdkcp -r jdk1.8.0_271/ /usr/local/jdk/jdk1.8.0_271添加到环境变量// 打开环境变量文件原创 2020-11-25 16:27:25 · 145 阅读 · 0 评论 -
【网络编程】ubuntu下使用firewall-cmd开放和关闭对外端口
1. linux下安装firewall-cmdsudo apt-get install firewalld1.1 开放端口(比如开放8001)firewall-cmd --add-port=8001/tcp --permanentfirewall-cmd --reload1.2 查看开放的端口firewall-cmd --list-all会得到如下图,其中ports开放的端口,可以看到8001已经被开放了。1.3 关闭端口firewall-cmd --remove-port=80原创 2020-11-25 15:56:59 · 7683 阅读 · 0 评论 -
【网络编程/操作系统】Linux下对象池的简单实现
前言一. 对象池是什么? 大家应该对线程池,内存池等即便不知道原理,也有所耳闻了。同样的,对象池的大概思路和线程池,内存池一样。 以线程池为例子说明,假定有一个服务端,一开始便分配了一定量的线程数(假设10个)。那么,当有10个客户端对服务端发起连接时。服务端便可直接将这10个客户端分配给事先准备的10个线程,而不需要临时创建10个线程,进而节省了大量的时间,同时也限制了一共可以处理的线程数,避免了资源过度占用。 对象池也是如此,**缓存一些对象从而避免大量创建同一个类型的对象,同时限制了实例原创 2020-06-30 20:37:15 · 247 阅读 · 0 评论 -
【UBUNTU】深度学习服务器中环境配置问题以及遇到的坑。
前言要离开实验室了,记录一下给需要的人看看,研一最初的时候疯狂白嫖舍友的服务器(感谢我JL兄),终于在2019年4月份老王可算是给咱们的破机器更新换代了,还掏来了一台TITAN XP,经过一系列地抓阄操作‘有幸’负责起了这台BOSS机器的打杂工作。Linux也使用两年了,开始也只是随便玩玩跑跑深度学习,真正迈入Linux的坑该算是从打杂开始,记录一下关于深度学习主机配置上的技术问题和坑。UBU...原创 2020-04-27 10:26:24 · 573 阅读 · 0 评论 -
【网络编程/操作系统】线程池原理及其实现
前言线程池的构造是这样的,系统根据线程池初始化的线程数预先分配一块内存给线程池。当有任务进来的时候,直接将事先创建好的线程分配给任务。如果没有可用的空闲线程了,就令任务在任务队列中等待。 这样可以很好的避免了每个任务都分配一个线程,当任务请求过多时,导致资源消耗过多最终影响全体任务性能的情况。同时减少了线程的频繁创建和销毁,毕竟创建和销毁线程也需要cpu资源和消耗时间的。线程池的结构线程池的...原创 2020-04-19 12:50:55 · 241 阅读 · 0 评论 -
【UBUNTU】安装两个不同版本的opencv
前言对于在ubuntu下开发CV程序的小伙伴们,难免会遇到不同程序要使用不同版本opencv的情况.使用python进行开发工作还可以用Anaconda去切换环境,但是使用C++进行开发时就必须要考虑到在同一环境中如何安装多版本的Opencv了.在我的电脑上,同时安装了opencv3.4和opencv4.1,下面来说说如何安装两个版本,并且交换使用.假设你电脑上已经安装过一个版本的openc...原创 2019-12-28 15:43:38 · 3525 阅读 · 3 评论 -
【UBUNTU】makefile文件的写法
序言linux中编译代码往往没有windows下直接使用IDE来得方便,但是既然从事了C/C++的开发就必然会涉及到linux下的C/C++编程。既然是编译C/C++代码,那就要学会怎么写makefile文件了,下面来说说怎么使用makefile文件来编译代码。第一种情况只有一个main.cpp文件,代码如下:#include <iostream>using namespac...原创 2020-04-03 16:46:47 · 1589 阅读 · 0 评论 -
【UBUNTU/技术问题】C/C++发生CoreDump(段错误,核心转储)后,如何快速定位到错误之处。
前言相信很多小伙伴在Linux环境下运行C++代码时都遇到过“段错误”,“核心转储”这种让人摸不着头脑的错误,但是又不知道如何定位到错误的位置。往往就放弃解决了,但是在实际工程中,出现这种错误是一定要解决的,不然项目拉跨了只能卷铺盖走人了。那么当项目工程量大的时候,我们来说说怎么快速定位到代码报错的位置。Core dump的类型1. 内存访问越界的问题(最典型的比如数组下标越界)2. 堆栈...原创 2020-03-06 18:53:53 · 979 阅读 · 0 评论 -
ssh登录远程服务器报错:packet_write_wait: Connection to xxx Broken pipe的解决方法
使用内网穿透时,一段时间没用操作命令行发现会自动断开,出现错误:packet_write_wait: Connection to xxx Broken pipe。有时候想远程跑代码,结果出个这个错误就很难受了。解决方法如下:正常来说是这样来连接远程服务器:ssh username@主机地址 -p 端口号只需要加上参数 -o ServerAliveInterval=60 即可ss...原创 2020-03-03 15:55:17 · 4154 阅读 · 0 评论 -
VSCODE中配置python环境以及使用remote-ssh远程调试linux服务器代码
第一步:在vscode中安装python的插件点开,然后搜索python,下载第一个第二步:新建python文件第三步:生成tasks.json文件按shift+ctrl+b,在屏幕中上的搜索栏中点击配置生成任务,然后点使用模板创建tasks.json,最后点击other生成tasks.json程序然后把下面的代码复制,覆盖原始生成代码:{ // See https://g...原创 2020-01-14 16:44:57 · 7786 阅读 · 5 评论 -
【UBUNTU】如何使用CMake编译同个项目中的多个CPP文件,编译链接动态库。
前言不得不承认在ubuntu对编译C/C++程序非常不友好,经常得自己写CMakeLists.txt.有时候在同一个项目中,还需要把自己写的类编译成动态库,下面记录下自己在ubuntu开发中遇到的坑。假设我们这里定义了一个类(1)这是类的头文件 mylib.hpp#ifndef MYLIB_H#define MYLIB_H#include <iostream>class ...原创 2020-01-08 11:37:16 · 2418 阅读 · 0 评论 -
【UBUNTU】使用Remmina访问远程linux服务器桌面
虽然平时使用终端即可操作远程服务器,但是有时候做目标检测或者其他需要返回测试图片效果的项目时,终端命令行往往是不够用的。而强行返回也只会导致“cannot cannect to X server”的问题。故本文针对ubuntu系统如何解决上面的问题找了个方法。ubuntu有着自带的远程桌面服务Remmina1)打开remmina按win键,搜索Remmina,点击即可打开2.打开后在协...原创 2019-12-12 16:40:17 · 5698 阅读 · 0 评论