Linux命令小结

任务

总结一下最近使用linux时比较有用的命令,还有遇到问题的解决方式

编译make时not compatible

问题背景

初次安装gnuradio时,我为了稳定性选择3.7版本,而当前子模块项目的版本都是默认与gnuradio 3.8相匹配,每次编译时,都会出现not compatible的错误

解决方法

因为git提供不同分支的版本管理,方便切换.可以通过git checkout命令,利用tab的补全功能,查看有那些版本可供选择,再选择即可.

ssh上传文件permission denied

问题背景

在更新博客图片时,需要上传无损压缩的bmp格式,但WordPress默认不支持这种格式图片,不想修改博客设置,打算直接将文件上传到服务器实现.

但使用ssh的scp命令遇到一些障碍:

  • 指定端口
  • 文件夹无法访问

解决方法

指定端口与ssh登录相似,加上-p 22,即指定22端口

文件夹无法访问是权限原因,服务器上进行设定chmod 777 filename,则文件或文件夹filename可访问

了解swig时gcc编译缺少头文件

问题背景

在用gnuradio进行wifi信号监测时,安装的模块依赖程序是swig,它能够方便实现其他高级语言对C/C++的调用.

在官网上尝试小例子,但在编译过程中报错,缺少tcl.h

解决方法

主要参考文章Linux编译程序时找不到头文件的解决办法

Linux编译程序时如果找不到头文件会提示如下错误:
$ gcc test.c -o test
test.c:9:16: fatal error: xxx.h: No such file or directory
 #include<xxx.h>

下面叙述以Ubuntu系统为例。
先查找 xxx.h 所在路径:
$ sudo find / -name xxx.h
/usr/local/include/xxx/xxx.h
然后用-I选项把目录加上编译:
$ gcc test.c -o test -I /usr/local/include/xxx

Leave a comment

Your email address will not be published. Required fields are marked *