小编Lon*_*erm的帖子

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

所以我正在尝试构建一个最初用CMake而不是.pro文件制作的程序.但是,由于库声明存在问题,我无法构建它.例如,以下内容不起作用:

#include <QtGui/QApplication>
Run Code Online (Sandbox Code Playgroud)

但是,这或多或少有效,但不完全:

#include <qt4/QtGui/QApplication>
Run Code Online (Sandbox Code Playgroud)

如果我使用上面的内容,那么我会收到大量错误,因为编译器说它无法找到其他标头所指向的标头.问题是qt4的前缀.如何在CMake文件中正确链接它,以便可以在qt4下找到每个标题,而无需更改QT-SDK附带的整个标头?


CMAKE文件:(来源:http://code.metager.de/source/xref/kde/Support/polkit-qt-1/examples/CMakeLists.txt )

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 …
Run Code Online (Sandbox Code Playgroud)

qt4 cmake

4
推荐指数
1
解决办法
7201
查看次数

标签 统计

cmake ×1

qt4 ×1