[gelöst] wie cmake verklickern, QT Network zu benutzen
-
Hallo,
ich habe bisher immer nur mit qmake gearbeitet, und da macht man das ja ganz einfach mit QT += network.
Nun will ich aber mal mit Plasmoids rumspielen, und habe mir dafür mal ein Smaple-Projekt für Plasmoids in Kdevelop erzeugt, von dem aus ich weiter machen will.
Das wird komplett via cmake konfiguriert. Funktioniert auch ganz prima, bis zu dem Punkt, wo ich QHttp benutze, da bekomme ich dann beim linken undefined references. Warum ist vollkommen klar, also muss ich in der cmakelists.txt irgendwie einstellen, dass er die QT-option network setzt. Blos wie?
Das ist die cmakelists.txt
# Project Needs a name ofcourse project(plasma-networkplasma) # Find the required Libaries find_package(KDE4 REQUIRED) include(KDE4Defaults) add_definitions (${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} ${KDE4_INCLUDES} ) # We add our source code here set(networkplasma_SRCS networkplasma.cpp) # Now make sure all files get to the right place kde4_add_plugin(plasma_applet_networkplasma ${networkplasma_SRCS}) target_link_libraries(plasma_applet_networkplasma ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS}) install(TARGETS plasma_applet_networkplasma DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES plasma-applet-networkplasma.desktop DESTINATION ${SERVICES_INSTALL_DIR})
Über google habe ich set(QT_USE_QTNETWORK TRUE) gefunden, aber das änder nichts.
Wie kann ich hier dafür sorgen, dass es gegen die richtigen Libs linkt?
Gruß,
Phil
-
wenn du mit qtcreator ein projekt anlegst sollte das ja schon von sich aus funktionieren, sofern du natürlich die richtigen komponenten ausgewählt hast.
Ich würde es auf jeden fall mal mit dem creator versuchen. Das ist wahrscheinlich das einfachste.
-
Set(QT_USE_QTNETWORK)
-
gelöst.
Muss {QT_QTNETWORK_LIBRARY} im String
target_link_libraries(plasma_applet_networkplasma ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS})
hinzufügen, dann klappts.
-
PhilippM schrieb:
gelöst.
Muss {QT_QTNETWORK_LIBRARY} im String
target_link_libraries(plasma_applet_networkplasma ${KDE4_PLASMA_LIBS} ${KDE4_KDEUI_LIBS})
hinzufügen, dann klappts.Das ist aber nur die halbe Lösung!
Wofür gibt es eine umfassende Doku?
Daraus 1:1find_package(Qt4 4.4.3 COMPONENTS QtCore QtGui QtXml REQUIRED ) include(${QT_USE_FILE}) add_executable(myexe main.cpp) target_link_libraries(myexe ${QT_LIBRARIES})
Da du aber nicht Qt4 suchst sondern kde4, bleibt dir nur das setzen (wie oben beschrieben) und includen des QT_USE_FILE.