
学习linux
文章平均质量分 71
火星机器人life
热爱多传感器融合slam、机器人、人工智能相关技术。立志于让机器人更智能,为人类移民火星做铺垫。让科技使生活更幸福,让科技改变世界。
展开
-
makefile交叉编译helloworld
makefile交叉编译helloworld主要需要修改的是在本地编译helloworld基础上修改本地工具链为交叉编译工具链。1.本地使用makefile编译helloworld如图为工程目录结构.├── hello.c├── hello.h├── main.c├── Makefile├── world.c└── world.hhello.c文件#include<stdio.h>#include"hello.h"void hello(){ prin原创 2022-02-16 14:50:26 · 6160 阅读 · 0 评论 -
在Linux中将文件编码转换为UTF-8
参考https://blog.youkuaiyun.com/sxf_123456/article/details/78895357转换c文件encodingc.sh#!/bin/bash### 将 values_here 替换为输入编码FROM_ENCODING="GB18030"### 输出编码 (UTF-8)TO_ENCODING="UTF-8"### 转换命令CONVERT=" iconv -f $FROM_ENCODING -t $TO_ENCODING"### 使用循环转换多个文件for原创 2021-05-26 18:02:12 · 10509 阅读 · 0 评论 -
gitlab服务器ubuntu16环境下搭建
1.ubuntu16安装gitlab首先参考在ubuntu16上搭建gitlab(实测可用)2.管理员账号初始化完成后想登录http://127.0.0.1/ 需要账号和密码登录,注册一个后登录报Your account is pending approval from your GitLab administrator and hence blocked错误,需要管理员账号初始化.账号初始化参考下面博客https://www.bbsmax.com/A/amd0eM9kzg/初始化好后输入原创 2021-03-26 20:39:47 · 3569 阅读 · 0 评论 -
c/c++/linux精确定时器
https://blog.youkuaiyun.com/qq_18059143/article/details/90182304?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-3&spm=1001.2101.3001.4242https://www.cnblogs.com/wanglijun/p/8556011.htmllinux c定时器https://www.cnblogs.com/elesos/p/原创 2021-01-13 21:08:30 · 1128 阅读 · 0 评论 -
eigen交叉编译段错误例子及解决
https://github.com/rubengooj/pl-slam/commit/2a62192a5fc0e2071f6976379c474b7ebfc90e33https://blog.youkuaiyun.com/HUAJUN998/article/details/54311561#commentBoxhttps://www.cnblogs.com/flyinggod/archive/2004/01/13/13433452.htmlhttps://blog.youkuaiyun.com/wojiushixiangs原创 2020-11-17 20:27:55 · 3885 阅读 · 4 评论 -
linux系统调试笔记
1.根目录满了解决方法(1)查看系统内存占用du -sh /*发送有异常的东西如log删除掉(2)查看程序实际占用的内存先top或ps 查看进程pid然后用grep VmRSS /proc/[pidnum]/status查看实际占用原创 2020-10-23 10:21:03 · 245 阅读 · 0 评论 -
获取系统时间戳的方法(使用c,c++,ros)
使用c++的system_clock::now()获取时间戳#include <chrono>inline uint64_t now_in_us_canbus() { return std::chrono::duration_cast<std::chrono::microseconds> (std::chrono::system_clock::now().time_since_epoch()).count();}设原创 2020-12-23 16:42:52 · 5296 阅读 · 0 评论 -
linux下查看和搜索离线api文档(zeal工具的安装与使用)
Zeal是Dash的开源版本,用于文档搜索和查看.1.安装安装很简单: (ubuntu 14.04) sudo apt-add-repository ppa:zeal-developers/ppa sudo apt-get update sudo apt-get install zeal2.启动控制台输入zeal之后发现无法使用,看不到 Edit 这...原创 2018-03-23 15:58:09 · 3645 阅读 · 0 评论 -
gdb 调试基础操作和在qtcreator中使用gdb调试
最近使用多线程,老是出现未知错误,比如程序死锁,或者线程突然挂掉,由于是多线程编程,单纯使用cout找不到出错点,只有学好gdb调试才能解决问题.首先参考https://blog.youkuaiyun.com/liigo/article/details/5822311.gdb调试基础操作学习的知识点为新建Debug工程,进入gdb调试,加载调试程序,设置断点,查看变量名,单步调试,继续,结...原创 2018-04-16 17:05:53 · 15372 阅读 · 0 评论 -
多线程调试(gdb命令行和使用集成开发qtcreator查看线程状态)
我在qtcreator中用调用的gdb找不到如何显示线程号对应的线程名字,因此需要继续学习使用gdb进行多线程调试. 1.创建多线程工程 2.启动进程并查看运行进程对应的id 3.使用gdb连接进程,并查看进程1.gdb命令行调试 1.创建多线程工程函数希望实现的功能为隔2s打印一次hello,1s打印一次world.但是,当使用 unique_lock#inc...原创 2018-04-17 10:40:11 · 8263 阅读 · 0 评论 -
linux 环境下进程被 killed掉原因分析和解决方法
最近在arm上运行自己写的程序,程序运行时间久一点就被killed,需要分析原因并找到解决方法.首先可能原因是(1)内存不够(2)程序出错那么如何查看被killed原因呢?1.内存不够方法1是查看linux 系统日志.vi /var/log/messages如果出现 kernel: Out of memory: Kill process意味着整个系统的内存已经不足,...原创 2018-04-19 15:54:59 · 155787 阅读 · 5 评论 -
c++内存泄露检测
c++内存泄露检测可使用valgrind工具,该可以检测下列与内存相关的问题 : (1)使用未初始化的内存 提示为 Use of uninitialised value of size (2) 对释放后内存的读/写 Invalid read of size 3) 对已分配内存块尾部的读/写 Invalid read of size 1 (4) 内存泄露 1 bytes ...原创 2018-04-25 08:57:54 · 829 阅读 · 0 评论 -
gdb和qtcreator远程调试(远程调试电脑和嵌入式linux)
最近在嵌入式平台里面跑程序,出现段错误,由于用的是release版,没有相关调试信息,因此,学会用debug版本进行远程调试调试就是当前需要学习的.1.实验1 两台linux系统远程调试首先有台台式机名字为pc,笔记本名字为notebook. 将pc作为服务器1.1gdb安装和gdbserver安装由于两台电脑都安装的ubantu14,因此自带了gdb1.2新建测...原创 2018-04-21 09:18:09 · 5707 阅读 · 0 评论 -
linux core dump文件生成和调试
1.core dump文件生成新建工程coredumptest (1)CMakeList.txt设置 在CMakeList.txt中增加用于调试的编译选项 详细的参数意义参考https://blog.youkuaiyun.com/rheostat/article/details/19811407project(coredumptest)cmake_minimum_required(VERSIO...原创 2018-05-26 10:23:04 · 6213 阅读 · 0 评论 -
cmake 生成供find_package使用的自定义模块
cmake中经常使用find_package寻找模块,使用起来非常方便.find_package的原理是什么呢?如果自己写个模块,如何提供给别人使用.如果别人希望用find_package的形式使用你的模块中的库,我该如何用cmake写这个库呢?下面用一个例子来说明:myapp程序通过find_package调用mylib中的库1.myapp工程myapp工程目录如下.├── CMak...原创 2018-11-08 16:18:00 · 11713 阅读 · 3 评论 -
linux常用命令
1.解压压缩包打包压缩包 (a)解压.tar.gztar -zxvf /usr/local/test.tar.gz-z:有gzip属性的 -x:解压 -v:显示所有过程 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。(b)解压.zip unzip test.zip (c)解压.rar unrar x test.rar test...原创 2017-04-05 15:18:02 · 505 阅读 · 0 评论 -
ubuntu显卡驱动(nvidia)安装终极教程
1 ##确定ubantu系统版本和显卡配置如果你的ubantu系统是ubantu14,请看下面 ubantu14安装显卡驱动首先要看可不可以装! 首先检查你笔电显卡的切换方式 命令:lspci |grep VGA 输出 00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Co原创 2017-10-27 20:16:41 · 15155 阅读 · 4 评论 -
linux下编译工程(使用命令行、Makefile、cmake编译helloworld)
linux环境下编译工程是开发的基础。使用helloworld总结一下基础的编译方法。1.命令行法(在控制台中指定编译器直接编译)步骤如下: (1)新建hello.c并添加内容 (2)选择编译器gcc使用命令gcc hello.c -o helloworld生成可执行文件helloworld 命令行主要是指定编译器gcc,源文件名hello.c,生成的可执行文件名helloworld2.使用m原创 2017-03-20 18:04:48 · 18654 阅读 · 2 评论 -
linux使用定时器回调函数示例
liunx使用setitimer()函数设置定时器,一定间隔后触发回调函数。#include <signal.h>#include <stdlib.h>#include <stdio.h>#include <sys/time.h>#include <signal.h>void timer_handler (int signum){ printf("trigger...");}in原创 2017-03-30 15:44:08 · 9224 阅读 · 0 评论 -
新建工程并用cmake编译和安装
本文介绍新建标准的cmake工程及使用cmake编译、CMakeLists的编写、编译和安装标准的cmake工程。1.新建cmake工程(1)cmake工程目录结构 在cmake工程中有不同的文件夹。文件夹结构通常如下。 (2)文件夹介绍 src 源文件所在位置的目录 include 头文件所在位置的目录 build 编译生成的文件所在的目录 hellofunlib文件夹 为hell原创 2017-04-06 12:01:10 · 2534 阅读 · 0 评论 -
linux内核编译及烧写
linux内核编译步骤如下 (1)搭建编译环境(下载虚拟机,安装ubuntu系统) (2)安装编译组件(tool-chain) (3)uboot的编译 (4)内核的编译本文实现在虚拟机中的ubuntu系统中编译能够在arm芯片上运行的linux系统(给arm芯片装系统)1.搭建编译环境安装虚拟机,装ubuntu 12.4系统2.安装编译组件(1)安装交叉编译工具 什么系统用什么编译工具,编原创 2017-04-05 12:01:16 · 2985 阅读 · 0 评论 -
linux下生成动态链接库并使用(使用cmake)
使用cmake**生成库**主要要注意三个文件夹 (1)源文件文件夹 (2)中间文件夹(编译生成的.o等文件的文件夹) (3)安装文件夹(最终可用的库所在的文件夹) 使用库的步骤 (1)在工程文件中包括库函数的头文件(可为绝对路径,也可配置全局环境变量用相对路径) (2)在CMakeLists.txt或集成开发环境中指定库函数的动态链接库或者静态链接库所在的文件夹路径 (3)在CMake原创 2017-04-01 11:04:44 · 38411 阅读 · 3 评论 -
多目录工程的CmakeLists.txt编写(自动添加多目录下的文件)
实现类似于vs中工程的CMakeLists.txt的编写。功能为main.cpp调用hello.cpp 的hello()函数,world.cpp的world()函数。使用自动添加多目录下的文件1.工程目录如下2.主函数main.cpp#include <stdio.h>#include "hello.h"#include "world.h"int main(){ hello();原创 2017-04-21 12:04:19 · 67396 阅读 · 3 评论 -
交叉编译Opencv2.4.9完全实录
交叉编译opencv原创 2017-05-05 19:34:20 · 3330 阅读 · 0 评论 -
linux 使用usb转串口模块并读串口数据
买了一个无线通信模块,在windows下还要装驱动才能读。在windows下测试无线模块没问题后,在ubantu14.2中测试怎么读串口。步骤如下:1.查看看系统信息dmesg | tail -f 输出如下:[12812.940613] usb 1-9: New USB device found, idVendor=10c4, idProduct=ea60 [12812.940621] usb 1原创 2017-05-10 18:02:44 · 6661 阅读 · 0 评论 -
ubuntu adb 安装与使用
1.ubantu下adb 的安装(1)安装sudo add-apt-repository ppa:nilarimogard/webupd8sudo apt-get updatesudo apt-get install android-tools-adb(2)查看是否安装成功 adb -v 有信息表示成功2.配置2.1查找设备(1)看adb 是否识别安卓设备 插入usb,使用adb dev原创 2017-05-17 08:38:40 · 19531 阅读 · 1 评论 -
Ubuntu创建Git仓库并上传到GitHub
目的是保持本地git和远程github上代码的同步。 参考官方教程 https://guides.github.com/activities/hello-world/1.本地安装git和在github上注册账号2.SHH认证及设置用户名和邮箱为了保证安全,需要再本地生成秘钥,并把公共秘钥给远程github。 输入ssh-keygen -t rsa 之后在 ~/.ssh/ 目录下可以看到 id原创 2017-07-20 15:48:18 · 2374 阅读 · 0 评论 -
shh使用总结
1.安装shh 安装ssh-serversudo apt-get install openssh-server安装ssh-clientsudo apt-get install openssh-client2.查看shh是否启动` ps -e|grep ssh 3.配置提高安全性 SSH默认服务端口为22,用户可以自已定义成其他端口,如222,需要修改的配置文件为: /etc/ssh/s原创 2017-04-26 12:01:49 · 2371 阅读 · 0 评论 -
ubuntu系统安装备份完全实录
1.制作u盘启动系统 2.使用u盘启动安装ubantu 3.使用u盘启动备份ubantu原创 2017-04-25 14:20:24 · 1073 阅读 · 0 评论 -
安装ubuntu后配置
(1)输入法配置 文本输入设置为英语(美国) (2)vi配置 vi有问题,编辑时上下键WD,解决sudo apt-get install vim(3)安装显卡驱动 参考博客 http://blog.youkuaiyun.com/TriLoo/article/details/52678033?locationNum=14 可能一次不行,多来几次。 (4)更新火狐浏览器 由于火狐默认为国外版本,不能原创 2017-07-18 11:39:57 · 861 阅读 · 2 评论 -
linux下编译安装软件的一般步骤
首先来看window安装软件的一般步骤 (1)找到网站下载安装源文件 (2)点开安装 (3)指定安装目录 (4)选择配置属性(可选) (5)安装并完成linux安装只是采用命令行形式。1.找到网站下载安装源文件下载方式: 方式1:在浏览器中搜索并下载文件 方式2:直接使用命令行下载 如下载搜狗拼音使用命令 wget “http://pinyin.sogou.com/linux/do原创 2017-02-22 16:05:06 · 11783 阅读 · 0 评论