标题:Qt6 cmake编译问题
作者:hnwdx
日期:2021-01-20 18:15
内容:
我是按照:
https://blog.csdn.net/sdhongjun/article/details/112058149
进行编译的,出现如下图错误如何解决?即moc.exe都没自动生成,所以报错误。
#1 [lixinwei 01-20 22:37]
你遇到的问题似乎跟https://bugreports.qt.io/browse/QTBUG-88015是一样的
解决方法是要把自己下载的CMake的bin目录添加到环境变量中,避免使用VS2019自带的CMake
你参考的这个教程也提到了要添加到环境变量,可能你没仔细看
#2 [lixinwei 01-20 22:51]
另外,他这个教程有些地方写的不太好:
不建议直接在源码目录下编译,这会污染源码,即使运行ninja clean,也无法清理干净
建议在源码之外新建一个目录,然后用cd命令切换到这个新建的目录
接下来依次运行:
/configure -prefix -debug-and-release
(他这个教程还用了-opensource选项,-opensource-confirm-license选项在CMake构建系统中完全没有用,加和不加没有任何区别)
ninja -j
(ninja默认只用6个线程编译;如果你的CPU少于6个线程,同时开6个线程也不会提高效率;如果CPU多于6个线程,更应该提高CPU的利用效率)
ninja install
#3 [hnwdx 01-22 08:38]
果真是高手啊。我以为vs2019带的cmake版本够新了,结果新中更有新中要求。
#4 [hnwdx 01-22 10:27]
问题分析透彻,追问一下:官方源码编译出来的llvm没有libclang_static.lib,导致QDoc不能正常编译,怎么办
#5 回 hnwdx 的帖子 [lixinwei 01-22 16:56]
hnwdx:
问题分析透彻,追问一下:官方源码编译出来的llvm没有libclang_static.lib,导致QDoc不能正常编译,怎么办
请下载Qt官方提供的libclang,这是专门用来编译qdoc的clang,作了一些特殊的处理。Qt官方也是用这个clang来编译的qdoc的。
下载链接:https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/prebuilt/libclang/qt/
对于Qt5,请务必选择6.0版本的;对于Qt6,建议选择11.0版本或12.0版本
编译前需要设置几个环境变量:set LLVM_INSTALL_DIR=
set QDOC_USE_STATIC_LIBCLANG=1
上面那个链接的上级目录(https://mirrors.tuna.tsinghua.edu.cn/qt/development_releases/prebuilt/libclang/)下也有很多clang,那些是动态编译的clang,只有编译 Qt Creator 和 Qt for Python 时才要用到,不要下载错了