Chcę się nauczyć budować projekt przy pomocy cmake w win 10
W samym środowisku Qt5 projekt buduje się prawidłowo, ale mam problem ze zbudowaniem go przy pomocy cmake.
Poniżej podam ścieżki, jak wyglądają do qt5, cmake 3.28.1 i CodeBlocks 20.03
C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5
C:/CodeBlocks/MinGW/bin/gcc.exe
C:/CodeBlocks/MinGW/bin/g++.exe
C:\CMake\bin
mój "CMakeLists.txt"
# Ustawienie minimalnej wersji CMake
cmake_minimum_required(VERSION 3.28)
# Ustawienie wersji projektu i nazwy projektu
project(FirstPro VERSION 0.1)
# Ustawienie ścieżki do MinGW
set(CMAKE_C_COMPILER "C:/CodeBlocks/MinGW/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/CodeBlocks/MinGW/bin/g++.exe")
# Ścieżka do Qt
set(Qt5_DIR "C:/Qt/Qt5.14.2/5.14.2/mingw73_64/lib/cmake/Qt5")
# Znalezienie Qt
find_package(Qt5 REQUIRED COMPONENTS Widgets)
# Źródła
set(SOURCES
main.cpp
mainwindow.cpp
)
# Nagłówki
set(HEADERS
mainwindow.h
)
# UI
set(UI_FILES
mainwindow.ui
)
# Zawijanie plików UI
qt5_wrap_ui(UI_HEADERS ${UI_FILES})
message(STATUS "UI_HEADERS: ${UI_HEADERS}")
# Tworzenie pliku wykonywalnego
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${UI_HEADERS})
# Łączenie z bibliotekami Qt
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
# Ustawienie standardu C++
set(CMAKE_CXX_STANDARD 17)
uruchamiam cmd, wchodzę do katalogu z projektem, tworzę katalog
mkdir build
cd build
i zaczynam budować
cmake ..
-- Building for: NMake Makefiles
CMake Error at CMakeLists.txt:5 (project):
Running
'nmake' '-?'
failed with:
no such file or directory
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
więc wymuszam poleceniem:
cmake .. -G "MinGW Makefiles"
i wydaje się że wszystko o.k, chociaż nie rozumiem tego " - skipped"
-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/CodeBlocks/MinGW/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/CodeBlocks/MinGW/bin/c++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- UI_HEADERS: C:/Users/2025/Desktop/QtStudentAddFile/build/ui_mainwindow.h
-- Configuring done (4.0s)
-- Generating done (0.1s)
chcę teraz zbudować i wydaję polecenie:
cmake --build .
[ 25%] Generating ui_mainwindow.h
[ 50%] Building CXX object CMakeFiles/FirstPro.dir/main.cpp.obj
[ 75%] Building CXX object CMakeFiles/FirstPro.dir/mainwindow.cpp.obj
C:\Users\2025\Desktop\QtStudentAddFile\mainwindow.cpp:2:10: fatal error: ui_mainwindow.h: No such file or directory
#include "ui_mainwindow.h"
^~~~~~~~~~~~~~~~~
compilation terminated.
mingw32-make.exe[2]: *** [CMakeFiles\FirstPro.dir\build.make:95: CMakeFiles/FirstPro.dir/mainwindow.cpp.obj] Error 1
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/FirstPro.dir/all] Error 2
mingw32-make.exe: *** [Makefile:90: all] Error 2
W czym popełniam błąd? Co powinienem poprawić? hę?