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中的QT4库?_Qt4_Cmake - Fatal编程技术网

如何正确链接到CMake中的QT4库?

如何正确链接到CMake中的QT4库?,qt4,cmake,Qt4,Cmake,因此,我正在尝试构建一个最初使用CMake而不是.pro文件制作的程序。但是,我无法构建它,因为库声明有问题。例如,以下操作不起作用: #include <QtGui/QApplication> 据我所知,你们很接近。在您的FIND_程序包(需要Qt4)之后包括以下行: 包括(${QT\u USE\u FILE}) 依照 QT_USE_file指向的文件将通过添加include目录、预处理器定义和填充包含所有QT库及其依赖项的QT_库变量来设置编译环境 因此,这应该为您设置正确的路

因此,我正在尝试构建一个最初使用CMake而不是.pro文件制作的程序。但是,我无法构建它,因为库声明有问题。例如,以下操作不起作用:

#include <QtGui/QApplication>

据我所知,你们很接近。在您的
FIND_程序包(需要Qt4)之后
包括以下行:

包括(${QT\u USE\u FILE})

依照

QT_USE_file
指向的文件将通过添加include目录、预处理器定义和填充包含所有QT库及其依赖项的
QT_库
变量来设置编译环境


因此,这应该为您设置正确的路径

那么你的CMake看起来是什么样子?它很大,但我刚刚添加了它。你需要修改
include\u目录
来获得qt4基本目录,那么就不需要修改源代码。在你的find\u包之后,放入
include(${QT\u USE\u FILE})
。另外,相信我,这不是一个庞大的CMake文件谢谢我在几分钟前找到了这个解决方案,但是一直在把INCLUDE(${QT\u USE\u FILE})放在find\u包之前。这就是它不起作用的原因。再次感谢。
#include <qt4/QtGui/QApplication>
install(FILES org.qt.policykit.examples.policy DESTINATION ${SHARE_INSTALL_PREFIX}/polkit-1/actions/)

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_SOURCE_DIR}/gui
)

set(polkit_example_SRCS
main.cpp
PkExample.cpp
)

SET(polkit_example_RESOUCES
icons/icons.qrc
)

FIND_PACKAGE(Qt4 REQUIRED)

QT4_WRAP_CPP(polkit_example_MOC_SRCS
PkExample.h
)

QT4_WRAP_UI(polkit_example_UI_SRCS
PkExample.ui
)

QT4_ADD_RESOURCES (qtsourceview_RC_SRCS  ${polkit_example_RESOUCES})

add_executable(polkit-example
${polkit_example_SRCS}
${polkit_example_MOC_SRCS}
${polkit_example_UI_SRCS}
${qtsourceview_RC_SRCS}
)

target_link_libraries(polkit-example
${QT_QTCORE_LIBRARY}
${QT_QTGUI_LIBRARY}
polkit-qt-gui-1
polkit-qt-core-1
)

#--------Helper Application

# This macro is defined in FindPolkitQt.cmake
macro(dbus_add_activation_system_service _sources)
foreach (_i ${_sources})
    get_filename_component(_service_file ${_i} ABSOLUTE)
    string(REGEX REPLACE "\\.service.*$" ".service" _output_file ${_i})
    set(_target ${CMAKE_CURRENT_BINARY_DIR}/${_output_file})
    configure_file(${_service_file} ${_target})
    install(FILES ${_target} DESTINATION ${SHARE_INSTALL_PREFIX}/dbus-1/system-services )
    #install(FILES ${_target} DESTINATION ${_install_dir})
endforeach (_i ${ARGN})
endmacro(dbus_add_activation_system_service _sources)

set(polkit_example_helper_SRCS
PkExampleHelper.cpp
mainHelper.cpp
)

qt4_add_dbus_adaptor(polkit_example_helper_SRCS
org.qt.policykit.examples.xml
PkExampleHelper.h
PkExampleHelper
)

QT4_WRAP_CPP(polkit_example_helper_MOC_SRCS
PkExampleHelper.h
)

add_executable(polkit-example-helper
${polkit_example_helper_SRCS}
${polkit_example_helper_MOC_SRCS}
)

# see our helper is pretty small :D
target_link_libraries(polkit-example-helper
${QT_QTCORE_LIBRARY}
polkit-qt-core-1
)


dbus_add_activation_system_service(org.qt.policykit.examples.service.in)

install(FILES org.qt.policykit.examples.conf DESTINATION ${SYSCONF_INSTALL_DIR}/dbus-1/system.d)