Portál AbcLinuxu, 1. května 2025 07:22
A tady binárka pro windows (dala docela zabrat, protože se mi nepodařilo přesvědčit QtCreator aby vytvořil statický build).
Zvláště by mě zajímalo jak se řeší v Qt projektech make install a překlady (aby aplikace byla v /usr/bin a překlady v /usr/share/...)Doporučuju cmake.
CMakeLists.txt
soubory pro projekt, případně s drobným komentářem. Akorát v nich zatím nejsou instalační příkazy, k těm se teprve dostanu, ale co jsem koukal do dokumentace, mělo by to jít.
Za takový příklad, s komentáři, bych byl také vděčen!
cmake_minimum_required(VERSION 2.6.0) #minimalni verze cmake
project(jmeno) #jmeno projektu, užitečné k specifikovaní (pod)adresářů u includes, libs apod
#pakliže budete jméno měnit, změntě i v dalších proměnných níže...
# --- Setup QT4 ---
find_package(Qt4 REQUIRED) #vyhledá a přidá Qt4 cmake modul. REQUIRED znamená, že
#pokud není nalezen, nedá se pokračovat v sestavení
include(${QT_USE_FILE}) #cmake funkce Qt
# --- Sources --- #seznam zdrojáků .cpp Na prvnim řádku je jméno
set(jmeno_sources #seznamu - v tomto pripade jmeno_sources
main.cpp
okno.cpp
)
# --- Headers to be MOCed --- #seznam .h, které vyžadují Qt MOC - tzn. všeobecně ty,
set(jmeno_moc #které obsahují Q_OBJECT, sloty a signály
okno.h
)
# --- Qt UI files --- #seznam ui souborů
set(jmeno_uis
okno.ui
)
# --- Setup MOC and UI ---
qt4_wrap_cpp(jmeno_sources ${si_keys_moc})
qt4_wrap_ui(jmeno_uiceds ${jmeno_uis})
include_directories(${CMAKE_CURRENT_BINARY_DIR}) #kvůli výstupním .h co vylezou z uic
# --- Include and Libs search dirs ---
#zde se daj přidat případné další adresáře pro hledání includes a knihoven
#cesty se specifikují pomocí různých proměnných, nejužitečnější jsou hlavně:
# ${CMAKE_CURRENT_SOURCE_DIR} --zdrojový adresář, kde je umístěn TENTO CMakeLists.txt
# ${jmeno_SOURCE_DIR} --zdrojový adresář tam, kde byl deklarován projekt s názve "jmeno",
# čili tam, kde je umístěn CMakeLists.txt, ve kterém je makro project(jmeno),
# (což je v tomto případě stejné jako ${CMAKE_CURRENT_SOURCE_DIR}, ale nemuselo by)
# případně se dá slovo SOURCE zaměnit za BINARY, což je na stejném místě, akorát v cílovém stromu sestavení
# případně se dá najít v dokumentaci množství dalších proměnných pro cesty
#include_directories()
#link_directories()
# ↑ nezapomenout odkomentovat při použití
# --- Configure Libs ---
#set(jmeno_libs ${jmeno_libs} ...) # tím se dají přidat další knihovny pro linkování
# --- Executable & Link ---
add_executable(jmeno-binarky ${jmeno_sources} ${jmeno_uiceds})
target_link_libraries(jmeno-binarky ${QT_LIBRARIES} ${jmeno_libs})
# ↑ závěrečná makra pro určení výstupní binárky(/binárek) a určení, ke které patří které
# zdroojáky a které knihovny
# Pokud sestavujete knihovnu, použijete add_library() místo add_executable()
add_subdirectory()
...
No, tady na ábíčku jeden jeCmake: zjednoduš si život
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.