任务
总结一下最近使用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