开发软件安装
常见问题:
执行软件报权限不够错误
银河麒麟系统安装后,没有可执行权限,运行bash或者二进制程序都提示bash权限不够或者类似报错
输入命令前加上sudo即可,
QTCreater代码中汉字乱码需要设置文件编码格式
Window系统默认的文件格式是GBK,所以汉字可以直接显示;linux文件默认格式是UTF8,所以汉字显示乱码;
解决方法1:
在QtCreator中,工具-选项-文本编辑器-行为将默认编码改成GBK,保存后,再关闭原来打开的文件(打开的还是原来的utf8,不会自动刷新),重新打开;中文就正常显示了;
解决方法2:
在QtCreator中,编辑-select Encoding 找到GBK,点击按编码载入(这样只是按照GBK显示,再次打开还是会乱码)
再次点击 编辑-select Encoding 找到utf-8,点击按编码保存,这样文件编码格式改变,中文就正常显示了;
程序运行提示 SIGSEGV! stack trace:…….
程序在执行过程中发生了内存访问错误;
查看代码里哪里内存越界、空指针访问等。
麒麟系统UDP组播程序没有问题,但无法接收到数据
麒麟系统下UDP通信需要配置本机网关,地址为IP相应的地址,如本机ip为192.168.1.11,网关为192.168.1.254;
程序编译时提示usr/bin/ld:cannot find -l…
这种情况为没有找到引用库,将所需的库所在的路径引用至项目中即可
如动态库地址为/home/mode 则llink_directories(/home/mode)
cmake程序动态库编译成功启动时却加载不上
使用ldd -r 库名称
查看问题是否是编译时未将指定的依赖库引入
linux编程同window编程不一致,需要显示的引用所依赖的动态库;
target_link_libraries(ProjectName libName)
ProjectName:项目名称 libName:依赖库名称
cmake使用见cmake简单使用教程。
Git fatal: Could not read from remote repository.
因为git仓库的用户信息和本地的用户信息不匹配造成的,解决方法也很简单,在git仓库中删除当前用户配置的key后重新生成并配置即可;
执行ssh-keygen –t rsa –C “git仓库邮箱”,重新生成密钥;
执行git config –global user.name “git用户名”,重新配置本地用户名;
执行git config –global user.email “git登录邮箱”,重新配置本地邮箱;
Git提交代码报错 Push failed unable to access
没有设置账户和邮箱
1 | git config --global user.name "111" |
如何使sudo命令时不需要输入密码
在etc/sudoers文件中找到找到以下行:%sudo ALL=(ALL:ALL) ALL;
在这一行的下面添加一行,例如:你的用户名 ALL=(ALL:ALL) NOPASSWD: ALL
“a terminal is required to read the password either use the -s option to read from standard input or configure an askpass helper”
这个问题是因为sudo命令需要终端来读取密码,但在某些情况下,无法从终端读取密码。要解决此问题,您可以使用以下方法之一:
- 使用-S选项:使用-S选项将密码从标准输入中读取。例如:
1 | echo "password" | sudo -S command |
其中“password”是您的密码,“command”是您要执行的命令。
- 配置askpass助手:如果您正在使用图形化界面,则可以配置一个askpass助手来获取sudo密码。首先,安装一个askpass程序(如ksshaskpass或gnome-ssh-askpass),然后在sudoers文件中设置路径。例如:
1 | Defaults env_keep += "SSH_ASKPASS" Defaults env_keep += "DISPLAY" Defaults ask_pass=/usr/bin/ksshaskpass |
请注意,修改sudoers文件可能会对系统产生不良影响,请小心操作并进行备份。
ssh初次链接时提示The authenticity of host ‘ ‘ can’t be established.ECDSA key fingerprint is SHA256:Are you sure you want to continue connecting (yes/no/[fingerprint])?
SSH连接服务器为什么会出现这个提示,出现这种情况一般有两个原因,一个是第一次登录云服务器,另一个是主机key发生了变化,解决方法很简单,输入yes,然后回车即可。
可以在SSH的时候加上StrictHostKeyChecking选项,
还有一种彻底去掉SSH主机验证的方法,就是修改/etc/ssh/ssh_config配置文件,在ssh_config配置文件中添加:
1 | StrictHostKeyChecking no |
不建议这么做。
软件安装
安装g++
1 | sudo apt-get install g++ |
安装cmake
1 | sudo apt-get install cmake |
安装opengl(不安装会报没有GL/gl.h问题)
1 | sudo apt-get installmesa-common-dev libgl1-mesa-dev |
mobaxterm访问麒麟系统可视化界面,麒麟系统安装XRDP
安装XRDP
1 sudo apt-get install xrdp启动XRDP
1 sudo /etc/init.d/xrdp start
安装QTCreater
1 | sudo apt-get install qtcreater |
dpkg 命令用法:
dpkg -i package.deb
:安装指定的.deb 软件包。dpkg -r package
:删除已安装的软件包。dpkg -l
:列出已安装的软件包。dpkg -S file
:根据文件查找所属的软件包。
将一台电脑上的软件拷贝到另一台没有网络的电脑
sudo apt-get install安装软件时,安装包存放位置为:
1 | /var/cache/apt/archives/ |
将此文件夹下的安装包下载导入另一台没有网络的电脑,安装即可
1 | dpkg -i *.deb |
麒麟系统环境变量设置
在命令行中设置,只在当前命令生效
1 | export KEY=VALUE |
修改配置文件,全局有效。
1 | sudo vim etc/profile |
在文档最后添加自己的环境变量,格式为export KEY=VALUE