Linux 带cmake的qplatformdefs.h
我正试图用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的链接 非常感谢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
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/")