Qt使用cmake,自动生成的ui_mainwindow.h中文件中引用自定义类的头文件时没有添加相对路径,但生成的ui_mainwindow.h文件和自定义类文件不在同一目录,导致无法成功引用自定义类,给出解决方案
时间: 2023-12-30 10:04:58 浏览: 71
可以在CMakeLists.txt文件中添加以下代码,将自定义类的头文件路径添加到生成的ui_mainwindow.h文件中:
```
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/path_to_custom_class_headers)
```
其中,`path_to_custom_class_headers`是自定义类头文件的路径。这样,CMake生成的Makefile中就会包含自定义类头文件的路径信息,从而解决了引用自定义类头文件的问题。
相关问题
Qt使用cmake,自动生成的ui_mainwindow.h中文件中自定义类的头文件使用绝对路径
如果你使用Qt Creator自动生成的CMake项目,那么默认情况下会使用相对路径来引用自定义类的头文件。如果你发现生成的ui_mainwindow.h中文件中自定义类的头文件使用绝对路径,可以尝试以下方法来解决:
1. 在CMakeLists.txt中添加include_directories指令,将自定义类的头文件所在目录添加到头文件搜索路径中。
```
include_directories(${PROJECT_SOURCE_DIR}/path/to/custom_class_header)
```
2. 在.pro文件中使用相对路径来引用自定义类的头文件,然后重新生成CMake项目。
```
HEADERS += ../../path/to/custom_class_header/custom_class.h
```
3. 如果以上两种方法都无效,可以考虑手动修改ui_mainwindow.h中的绝对路径为相对路径。但是需要注意,这种方法不太可靠,因为每次重新生成ui文件时,修改的内容都会被覆盖掉。
希望这些方法能帮助到你。
Qt使用cmake,自动生成的ui_mainwindow.h中文件中包含的自定义类的头文件路径错误,无法找到自定义类
这个问题可能是由于自动生成的ui_mainwindow.h文件没有正确包含自定义类的头文件路径导致的。你可以尝试在CMakeLists.txt文件中添加以下代码来解决这个问题:
```cmake
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/path/to/your/ui/files)
```
这个代码会将你的ui文件所在的路径添加到CMake的自动查找路径中,这样在生成ui文件时就可以正确地包含自定义类的头文件路径了。另外,你还需要在CMakeLists.txt文件中将自定义类的头文件路径添加到include_directories中,例如:
```cmake
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/path/to/your/custom/header/files
)
```
这样就可以确保自定义类的头文件路径被正确地包含进来了。