项目场景:
QT使用QGC(QGroundControl )进行二次开发程序各种报错不能运行
问题描述
问题1:gitee下载的源码 ,缺少文件
问题2:项目拷到其他电脑,Cmake配置里的文件位置信息不正确还改不了,CMake运行失败
问题3:还没找到解决方法
官网指定的github下载的源码 ,提示缺少GLIB2库
原因分析及解决方案:
我没有深入研究,不知道究竟是哪步让它好用,或不好用的,只是记录了我的操作
下文中的
github指代github的QGC源码,
gitee指代github的QGC源码。
问题1:缺少文件是因为没有拉取子模块代码
执行git指令:git submodule update --recursive
我github和gitee的代码都有,github是子模块也拉取了,gitee只拉取了主代码,
先执行运行gitee的代码,看提示缺少哪个文件,直接把github里该文件所在的文件夹全部复制进gitee相对应的代码位置,大概复制了四五个后不报错了,可以构建运行。
问题2:
- 因为同事已经构建了,所以构建目录里有它文件目录的缓存,需要将构建目录删除并重新添加(路径和之前一样就行,只是需要有个删除配置的过程)
- 我也执行了重新配置初始参数“Re-configure with Initial Parameters”按钮
- 此时的CMake依旧报错,我删除了程序的build文件夹。
- 执行CMake,执行构建。
(估计是cmake时访问了github,昨天晚上cmake失败,错误提示github的项目地址,今早就可以了。晚上github国内网不太行啊)
问题3:没找到解决方法
我尝试了使用MSYS2下载依赖包
pacman -Sy
pacman -Ss glib2
pacman -S mingw-w64-x86_64-glib2
pacman -S glib2-devel
下载之后用Everything搜索,发现如下路径都很像,就都添加到环境变量里了
C:\msys64\mingw64\bin
C:\msys64\mingw64\lib
C:\msys64\usr\lib
C:\msys64\usr\bin
执行CMake运行依旧失败,找不到GLIB2
总结:
- 拉取子模块
- 清理cmake配置
- 清理build内容
胡思乱猜想:
第一个问题
拉一个github主分支加子模块的项目,再拉取一个只有github的主分支。
运行主分支项目,是不是也会提示缺少东西,然后缺少哪个再从有子模块的项目里拿。这样是不是也行呢
求助:
CMake提示找不到GLIB2怎么办啊?初学QT的我要疯了