Linux 带cmake的qplatformdefs.h

Linux 带cmake的qplatformdefs.h,linux,qt,cmake,Linux,Qt,Cmake,我正试图用cmake编译我的Qt程序,但编译时遇到了一个错误: qzip.cpp:57:27:错误致命:qplatformdefs.h:没有这样的文件或目录 我已经在CMakeLists.txt中添加了这些行,但它不起作用: 如果(QT_库_目录而非QT_MKSPECS_目录或QT_QMAKE_已更改) EXEC_程序(${QT_QMAKE_EXECUTABLE} #不要替换:在windows上,因为它可能是驱动器号 #和windows应已使用;作为分隔符 IF(UNIX) ENDIF(UNIX

我正试图用cmake编译我的Qt程序,但编译时遇到了一个错误:

qzip.cpp:57:27:错误致命:qplatformdefs.h:没有这样的文件或目录

我已经在CMakeLists.txt中添加了这些行,但它不起作用:

如果(QT_库_目录而非QT_MKSPECS_目录或QT_QMAKE_已更改)

EXEC_程序(${QT_QMAKE_EXECUTABLE}

#不要替换:在windows上,因为它可能是驱动器号

#和windows应已使用;作为分隔符

IF(UNIX)

ENDIF(UNIX)

设置(QT\u MKSPECS\u DIR未找到)

查找路径(QT_MKSPECS_DIR qconfig.pri PATH${QT_MKSPECS_dirs}

ENDIF(QT_库_目录而非QT_MKSPECS_目录或QT_QMAKE_已更改)

集合(QT_包含${QT_QT_包含${QT_MKSPECS_DIR}/default${QT_包含${u DIR})

那么,如何在我的CMakeLists.cpp中添加指向qplatformdefs.h的链接

非常感谢


p.S.:我使用的是Ubuntu 12.04 32位

您可能已经找到了答案,但如果您没有找到答案,请注意:

在我的Fedora中,该文件位于/usr/lib64/qt4/mkspecs/linux-g++-64中。 假设它在Ubuntu中的位置相同,您应该将该目录添加到include_directories()中


希望我能提供帮助。

您可以尝试将此添加到您的CMakeLists.txt:


include_目录(${QT_MKSPECS_DIR}/default)

这似乎是一个有点脆弱的解决方案。如果代码在另一个平台上签出,它不会崩溃吗?有没有办法让QT告诉CMake这个文件在哪里?
ARGS "-query QMAKE_MKSPECS"

OUTPUT_VARIABLE qt_mkspecs_dirs )
STRING(REPLACE ":" ";" qt_mkspecs_dirs "${qt_mkspecs_dirs}")
DOC "The location of the Qt mkspecs containing qconfig.pri"

 NO_DEFAULT_PATH )
include_directories( lots_of_dirs "/usr/lib64/qt4/mkspecs/linux-g++-64/")