能搞的都搞了,找不到qt的安装路径,哪里出错了呢?
你的CMakeLists.txt放的不全,你可以看看这个链接:https://github.com/nholthaus/cmake-qt-project/blob/master/CMakeLists.txt
#-------------------------------------------------------------------------------
# Qt Settings
#-------------------------------------------------------------------------------
# Required Qt settings
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(QT_USE_QTMAIN TRUE)
# Setup the cmake prefix path so Qt can be found. Use the QTDIR variable if defined
# 确保设置过QTDIR
if(NOT DEFINED ENV{QTDIR})
MESSAGE(STATUS "QTDIR environment variable not set. Be sure to set the QTDIR
cmake cache variable to the Qt root install location")
endif()
set(QTDIR $ENV{QTDIR} CACHE STRING "Qt install path")
# 你的提示信息里有这个
list(APPEND CMAKE_PREFIX_PATH ${QTDIR})
这个你看看对你有没有帮助,https://decovar.dev/blog/2019/05/11/vscode-cmake-qt/
不知道你这个问题是否已经解决, 如果还没有解决的话:我的习惯
生成makefile : qmake 或者 cmake
编译: make
ui设计: 单独打开一个i3工作区放ui设计界面,打开终端(win/super+enter), designer xxx.ui
单开一个工作区放qt文档:win/super+d assistant
本人习惯用终端编译运行,所以对我来说最有用的是代码提示配置文件 c_cpp_properties.json
我这里生成好了一个.vscode文件,直接放到qt项目,改吧改吧就能用了:git clone https://gitee.com/dspure/vscode-qt.git
对于如何找到已安装的Qt的路径,在VSCode中进行设置,可以通过在工作区中新建一个c_cpp_properties.json文件,并在其中设置Qt的includePath,类似于以下的格式:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/lib/x86_64-linux-gnu/**", //qt动态库路径 qt版本不同 名字有些许差异 自动更改
"/usr/include/x86_64-linux-gnu/qt5/**" //qt动态库路径 qt版本不同 名字有些许差异 自动更改
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"cppStandard": "c++11",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
其中,includePath需要针对不同的系统和Qt版本进行相应的修改。然后,通过使用快捷键ctrl+shift+p,在弹出的命令面板中选择“C/C++: Edit Configurations (JSON)”并选择对于Qt的配置后,就可以配置成功。
如果还是无法找到路径,可以尝试使用qtchooser工具来找到Qt的路径,具体方法为,在终端中运行命令
qtchooser -print-env
来查看qtchooser的路径配置,以及当前默认使用的Qt的路径信息。接下来,通过在c_cpp_properties.json文件中添加它们的路径信息,即可在VSCode中找到Qt的路径。
如果以上方法仍然无效,可以考虑在Qt官网上下载专门为VSCode设计的插件,并按照其官方文档进行配置和安装,具体请参考https://doc.qt.io/qt-6/development-tools-vscode.html。
如有其他问题,请继续提出。