code | meaning |
---|---|
mkdir test | 创建目录 |
cd test | 进入目录 |
git init | 初始化仓库 |
ls ;ls -ah | 查看目录 |
touch test.c | 新建项目 |
add | 添加到缓存 |
commit -m “words” | 提交到库 |
log | 提交历史 |
status | 查看仓库状态 |
checkout – file | 回到最近修改状态 |
rm ;rm -rf file | 删除 |
reset+checkout | 恢复文件 |
checkout -b dev | 创建分支+切换 |
merge | 合并 |
branch -a | 查看分支 |
branch -D | 删除分支 |
branch -m | 修改分支名 |
clone | 远程仓库关联到本地 |
push origin branch | 修改提交 |
fetch origin branch | 下载远程代码到本地 |
git merge origin/branch | 远程与本地合并 |
command | meaning |
---|---|
-o outputfile file.cpp | 编译为可执行文件 |
-c | 编译为对象文件 |
-o outputfile file1.o file2.o | 链接对象文件 |
对象文件和可执行文件的主要区别在于链接的程度:对象文件包含了部分链接的代码,而可执行文件包含了完全链接的代码。在一些大型项目中,源代码可能被分割成多个文件,然后分别编译成对象文件,最后再链接成一个可执行文件。这样的做法可以提高编译的效率,因为当某个源文件被修改时,只需要重新编译那个文件,而不需要重新编译整个项目。
g++ -o test1 hello.cpp helloworld.cpp
g++ -c hello.cpp
g++ -c helloworld.cpp
g++ -o test2 hello.o helloworld.o
g++ -o test3 hello.o helloworld.cpp
g++ -o test4 hello.cpp //wrong
默认命令模式
command | meaning |
---|---|
ESC | 命令模式 |
gg / G/ 5+G | 首行/末行/第五行 |
yy / p/ dd | 复制/粘贴/剪切 |
u / ctrl + r | 撤销/取消撤销 |
+i / +a | 编辑模式 |
:/ wq/ q! | 末行模式/保存退出/强制退出 |
怎么会有装起来这么麻烦的东西
cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc
添加以下信息
prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include
libdir=/usr/local/lib
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.4.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
main error
sudo ln -s /usr/include/opencv4/opencv2 /usr/include/
sudo ln -s /usr/local/include/opencv4/opencv2 /usr/local/include/
g++ -o webcam.o //wrong
g++ webcam.o -o webcam //wright
ps:百度搜不到解决方案,还得是gpt。
这个错误通常是因为你没有在编译命令中指定要编译的源文件。例如,如果你想编译一个名为hello.cpp的源文件,你应该使用以下命令:
g++ hello.cpp -o hello
在这个命令中,hello.cpp是要编译的源文件,-o选项指定了输出文件的名称,hello是输出文件的名称。如果你在命令中没有指定要编译的源文件,编译器就会报“no input files”的错误。确保你在命令中指定了正确的源文件名,并且文件存在于当前工作目录中。
g++ yourfile.cpp -o yourfile `pkg-config --cflags --libs opencv`
sudo apt install mlocate
locate libopencv_highgui.so.3.4
找到后添加路径
cd /etc/ld.so.conf.d
sudo vim opencv.conf //加入路径
sudo ldconfig
//最顺利的一集
error :“conda”无法找到命令
solve :导入路径才能使用
sudo gedit ~/.bashrc
export PATH="/home/用户名/anaconda3/bin:$PATH"
source ~/.bashrc
command | meaning |
---|---|
conda env list | 存在的虚拟环境 |
conda create -n your_env_name python=x.x | 创建虚拟环境 |
conda activate your_env_nam | 进入虚拟环境 |
conda deactivate env_name | 退出虚拟环境 |
conda remove -n your_env_name --all | 删除虚拟环境 |
Tools/environment_install/install-prereqs-ubuntu.sh-y
solve :挂着下一个晚上,第二天重下
sudo -H pip2 install --upgrade MAVProxy pymavlink future lxml
error :-H无法找到命令与目录
solve :在sudo命令中,-H标志是用来设置HOME环境变量为目标用户的家目录。这个标志是有效的,但是在某些情况下,可能会遇到"-H: 没有那个文件或目录"的错误。这通常是因为系统中的sudoers文件配置问题导致的。
如果遇到了这个问题,可能需要检查一下系统的sudoers文件配置。可以使用visudo命令来编辑sudoers文件,确保其中包含以下内容:
Defaults env_keep += "HOME" //failed
sudo pip2 install --upgrade MAVProxy pymavlink future lxml
error :pip2无法找到命令与目录
solve :
sudo apt-get install python-pip
error: If executing pip with sudo, you may want sudo’s -H flag
sudo chown root /home/gonglai/.cache/pip/http
sudo chown root /home/gonglai/.cache/pip
error :Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade
solve :
pip3 uninstall MAVProxy pymavlink future lxml
sudo -H pip2 install --upgrade MAVProxy pymavlink future lxml
sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python-pygame
pip3 install PyYAML mavproxy --user
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --config python
Tools/environment_install/install-prereqs-ubuntu.sh-y
创建虚拟环境
运行sim_vehicle.py --map --console
出现sim_vehicle.py无法找到文件与目录
Solve:
../Tools/autotest/sim_vehicle.py --frame singlecopter --map --console
//fail 虚拟机装不了一点
solve :安装opencv-python,wxpython,matplotlib库
ERROR: Could not build wheels for wxPython
TRY1 :创建python=3.8的虚拟环境安装//fail ——>
TRY2 :创建python=3.6的虚拟环境安装//fail
TRY3 :安装旧版本的wxpython//fail
TRY4 :创建python=3.9的虚拟环境安装//successful ——>
空格不匹配任意文件,可作为分隔符,可用反斜杠转义
开头的文件标识 注释,可以使用反斜杠进行转义
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
/ 开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
** 匹配多级目录,可在开始,中间,结束
? 通用匹配单个字符
* 通用匹配零个或多个字符
[] 通用匹配单个字符列表
bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin: 忽略根目录下的bin文件
/*.c: 忽略 cat.c,不忽略 build/cat.c
debug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo: 忽略/foo, a/foo, a/b/foo等
a/**/b: 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件
*.log: 忽略所有 .log 文件
config.php: 忽略当前路径的 config.php 文件
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
$ git add -f App.class
$ git check-ignore -v filename.
Large File Storge,可以帮助我们管理比较大的文件,git lfs对于需要追踪的文件只会保存一个指向该文件的指针,而不是在本地仓库中保存每次提交的版本,节省了本地磁盘空间,缩小了git的传输时间。
它通过将大文件存储在Git仓库之外的服务器上,并使用指向这些文件的指针来跟踪和管理这些文件。这样可以避免Git仓库变得庞大和不稳定。Git LFS支持大文件的版本控制和协作,使得与大型二进制文件(如图像、音频和视频文件等)一起使用Git变得更加灵活和高效。
git lfs track "*.zip"
git lfs ls-files
分区 | 大小 |
---|---|
boot/efi | 1G |
swap | 两倍内存 |
/ | 150-200G不少于100G |
/home | 剩下所有 |