[✔️]CMake生成的VisualStudio项目,Qt的头文件目录默认添加了编译选项,如何在添加到c++头文件目录

简介: [✔️]CMake生成的VisualStudio项目,Qt的头文件目录默认添加了编译选项,如何在添加到c++头文件目录

如题,这个问题其实困扰了我非常久,我也做了非常多的尝试,以下的这几个命令都试过了


target_include_directories()
include_directories()


使用以上命令,当你添加Qt模块后,Qt的头文件始终在命令行的编译选项里面,这就导致visual studio无法正常提示qt的相关代码,编写qt接口时非常难受。


image.png


直到后来,我尝试着添加了SYSTEM属性后,发现目录也出现在了编译选项里面


target_include_directories(myapp SYSTEM PRIVATE /path/to/include)


所以我就断定Qt内部的代码肯定有类似的逻辑,但是并没有在Qt的cmake文件中发现类似的逻辑。


顺着这个思路往下走,既然头文件目录已经添加到编译选项了,那如何修改目录的属性,让他添加到c++头文件目录呢?


chat-gpt告诉我,使用 target_compile_options 命令将 /path/to/include 目录添加到编译器的系统搜索路径中:


target_compile_options(myapp PRIVATE "-isystem /path/to/include")


除了 -isystem 选项之外,还有其他一些用于添加头文件搜索路径的编译器选项。这些选项通常具有不同的行为,并且可以根据您的需要进行选择。


下面是几个常见的用于添加头文件搜索路径的编译器选项:


  1. -I <path>: 将 <path> 目录添加到编译器的普通头文件搜索路径中。


  1. -isystem <path>: 将 <path> 目录添加到编译器的系统头文件搜索路径中。与 -I 不同,-isystem 选项会将头文件目录标记为系统目录,这意味着编译器不会产生警告信息。


  1. -idirafter <path>: 将 <path> 目录添加到编译器的后备头文件搜索路径中。当编译器在其他搜索路径中找不到所需的头文件时,它会尝试在后备搜索路径中查找头文件。


  1. -include <filename>: 在编译器预处理期间将 <filename> 文件包含在每个源代码文件中。这个选项可以用来强制编译器使用指定的头文件,例如在移植代码时可能需要使用。


除了上述选项之外,某些编译器可能还提供其他特定于平台或编译器的选项来处理头文件搜索路径。


最终问题也迎刃而解,使用


target_compile_options(myapp PRIVATE "-I/path/to/include")


image.png


这样子,visual studio就能丝滑的提示qt相关的接口了!

目录
相关文章
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
1313 56
|
Unix 网络虚拟化 C++
VS2022+Qt5.14.2成功编译MITK2022.10
使用VS2022和Qt5.14.2成功编译MITK2022.10的过程,包括编译结果的截图、遇到的编译问题的解决方法、两个重要的注意事项(patch文件格式的修改和ITK-gitclone-lastrun文件的存在),以及参考链接。文中详细描述了如何解决编译过程中遇到的错误C2220和警告C4819,以及如何修改文件编码和尾行格式。
1210 1
VS2022+Qt5.14.2成功编译MITK2022.10
编译QCefView+VS2019+QT5.15.2
本文介绍了如何编译QCefView项目,并在VS2019和Qt 5.15.2环境下集成,包括编译结果、要点、cmake部署Qt的方法和相关参考链接。
1343 2
编译QCefView+VS2019+QT5.15.2
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
本文介绍了如何编译整合VTK 9.2、DICOM 0.8、DCMTK 3.6.7和Qt 6.2的步骤,包括安装Qt、CMake配置以及确认相关路径和版本设置。
565 1
vtkdicom0.8_vtk9.2_dcmtk3.6.7_qt6.2编译OK
WK
|
机器学习/深度学习 人工智能 算法
那C++适合开发哪些项目
C++ 是一种功能强大、应用广泛的编程语言,适合开发多种类型的项目。它在游戏开发、操作系统、嵌入式系统、科学计算、金融、图形图像处理、数据库管理、网络通信、人工智能、虚拟现实、航空航天等领域都有广泛应用。C++ 以其高性能、内存管理和跨平台兼容性等优势,成为众多开发者的选择。
WK
1219 1
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
3325 3
|
计算机视觉
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
这篇文章记录了使用VS2019编译Qt6.2.4、DCMTK3.6.7、VTK9.2.2、ITK5.3和OpenCV4.6.0的过程,包括下载和编译步骤,并提供了遇到编译错误时的解决方案和参考链接。
626 0
vs2019_qt6.2.4_dcmtk3.6.7_vtk9.2.2_itk5.3_opencv4.6.0编译记录
|
C语言 C++ Windows
QT多插件通信框架CTK编译记录
本文记录了编译QT多插件通信框架CTK的过程,包括编译结果截图、部署配置、Log4Qt编译配置、参考链接和拓展资料。文中提供了详细的编译步骤和配置文件示例,以及相关的资源链接。
857 0
QT多插件通信框架CTK编译记录
|
机器学习/深度学习 Java 计算机视觉
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
本文记录了使用mingw81_64编译OpenCV 4.5.5、Qt 5.15.2、VTK 9.1的详细过程,包括编译结果截图、编译步骤、遇到的问题及其解决方案,以及相关参考链接。文中还提到了如何编译boost源码为静态库,并提供了测试代码示例。
1026 0
opencv4.5.5+qt5.15.2+vtk9.1+mingw81_64编译记录
|
C语言
BOOST1.75+QT5.15.2编译记录
本文记录了BOOST 1.75与Qt 5.15.2编译过程的详细步骤,包括编译结果截图、将boost源码编译为静态库的步骤,以及如何在Qt项目中使用BOOST库的测试代码。文章还提供了相关参考链接,以帮助解决在编译和使用过程中可能遇到的问题。
776 0
BOOST1.75+QT5.15.2编译记录

热门文章

最新文章

推荐镜像

更多
  • qt