主机环境Ubuntu24,目标主机nanopct4(RK3399), buildroot-2024.02.4编译的根文件系统带OpenGL,QT单独未使用build root编译。用到的IDE资源qt-creator-opensource-linux-x86_64-11.0.3.run下载链接link
安装后只是空的IDE,没有kit因为是用作嵌入式开发,这点不重要,同样帮助文档也是没有的哈哈。
需要对qt源码build source,这里建议使用影子编译,可以防止污染源码目录。这里只讲遇到问题,印象深刻的事。
1、qtcreator缺少帮助文档
没有文档使用还是非常不方便的,以往我都是复制Windows下编译好的,添加进IDE,也可以使用但是版本不是很对应,这次打算自己编译帮助文档。
在qt build source时遇到的,看样子环境没装全
WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
On macOS, you can use Homebrew's llvm package.
On Windows, you must set LLVM_INSTALL_DIR to the installation path.
根据提示执行安装
apt install libclang-dev llvm
重点1:直接make不会生成qdoc,通过分析根Makefile,应该执行make docs
docs:
$(MAKE) -f $(MAKEFILE) html_docs && $(MAKE) -f $(MAKEFILE) qch_docs
重点2:编译帮助文档不要使用交叉编译,生成html_docs是没问题的,问题在于生成qch_docs,因为qch_docs需要qgenerator,交叉编译生成的qgenerator只能在目标主机运行。
2、远程运行缺少libQt5Core.so.5库
error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
有过部署经验的工程师,看到后应该能想到环境变量LD_LIBRARY_PATH没起作用,仔细检查后我设置的环境变量如下,
bash-5.2$ cat /etc/profile.d/qt.sh
export QT_ROOT=/usr/local/qt5.15.14
export QT_QPA_PLATFORM=eglfs
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export XDG_RUNTIME_DIR=/tmp/xdg-runtime-$USER
export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
export QT_FONT=/usr/local/fonts
export QT_LOGGING_RULES=qt.qpa.*=true
没有发现异常,而且我从目标主机运行是没问题的。以前使用的是qtcreator4,打开对比设置区别,直接上结论
Source /etc/prifile and $HOME/.profile打上勾,这样run时能让环境变量起作用。