Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用CMake检测Qt5_Qt_Cmake_Qt5 - Fatal编程技术网

用CMake检测Qt5

用CMake检测Qt5,qt,cmake,qt5,Qt,Cmake,Qt5,我试图在Ubuntu上安装并使用Qt5。为需要Qt 5的项目运行CMake会导致: -- The C compiler identification is GNU 4.8.4 -- The CXX compiler identification is GNU 4.8.4 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C

我试图在Ubuntu上安装并使用Qt5。为需要Qt 5的项目运行CMake会导致:

-- The C compiler identification is GNU 4.8.4
-- The CXX compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at /usr/local/share/cmake-3.2/Modules/FindQt4.cmake:626 (message):
  /usr/bin/qmake reported QT_INSTALL_LIBS as "/usr/lib/x86_64-linux-gnu" but
  QtCore could not be found there.  Qt is NOT installed correctly for the
  target build environment.
我试图从他那里得到暗示


如何在CMake中查找和使用Qt 5?

查看Qt 5文档,其中包含如何使用CMake的部分:

它提供了一个例子:

cmake_minimum_required(VERSION 2.8.11)

project(testproject)

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

# Find the QtWidgets library
find_package(Qt5Widgets)

# Tell CMake to create the helloworld executable
add_executable(helloworld WIN32 main.cpp)

# Use the Widgets module from Qt 5.
target_link_libraries(helloworld Qt5::Widgets)
注意包含与您的行不同的
find_package
的行。它还包含建议,如何帮助CMake查找Qt安装:

为了使find_软件包成功,必须在下面找到Qt 5 必须在CMAKE中设置CMAKE_前缀_路径或Qt5_目录 缓存到Qt5WidgetsConfig.cmake文件的位置。最容易 使用CMake的方法是设置CMake_PREFIX_PATH环境变量 到Qt 5的安装前缀

进一步阅读:

我按照usr1234567的建议添加了正确的“CMAKE_前缀_路径” (是否应由安装人员制作?) 在下面添加了include目录 (是否应该包括在手册中,并且KDevelop生成了CMakeLists.txt?),此外,还包括生成GUI元素的源文件 (将#include目录从QtGui更改为QtWidgets后,是否应该由KDevelop制作?) 我将CMakeLists.txt转换为显示的内容。也许不是最优的,但有效。 (这是我第一次尝试使用Qt,我想上面提到的困难可能会让喜欢开箱即用解决方案的人泄气)


为什么您假设名为
FindQt4.cmake
的模块将查找Qt5?
cmake_minimum_required(VERSION 2.8.11)

project(MyFirst)

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

# Find the QtWidgets library
find_package(Qt5Widgets)

# Tell CMake to create the helloworld executable
add_executable(MyFirst main.cpp MyFirst.cpp)

# The Qt5Widgets_INCLUDES also includes the include directories for
  # dependencies QtCore and QtGui
  include_directories(${Qt5Widgets_INCLUDES})

  # We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5.
  add_definitions(${Qt5Widgets_DEFINITIONS})

  # Executables fail to build with Qt 5 in the default configuration
  # without -fPIE. We add that here.
  set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

# Use the Widgets module from Qt 5.
target_link_libraries(MyFirst Qt5::Widgets)