开发软件安装

常见问题:

执行软件报权限不够错误

银河麒麟系统安装后,没有可执行权限,运行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
2
git config --global user.name "111"
git config --global user.email "111@163.com"

如何使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命令需要终端来读取密码,但在某些情况下,无法从终端读取密码。要解决此问题,您可以使用以下方法之一:

  1. 使用-S选项:使用-S选项将密码从标准输入中读取。例如:
1
echo "password" | sudo -S command

其中“password”是您的密码,“command”是您要执行的命令。

  1. 配置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
2
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

不建议这么做。

软件安装

安装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