Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

CMake Problem

Ostatnio zmodyfikowano 2017-04-17 19:25
Autor Wiadomość
Dashrek
Temat założony przez niniejszego użytkownika
CMake Problem
» 2017-04-14 11:09:36
Zacznijmy od podstawy, był sobie plik main.c do odczytu w terminalu, kiedy jego wielkość przekroczyła 1000 linii wywaliłem funkcje i main.c= main.c+funkcje.h+funkcje.c. wszystko fajnie w makefile
a.out: main.o funkcje.o
gcc main.o funkcje.o -lm

main.o:  main.c funkcje.h
gcc -c main.c

funkcje.o: funkcje.c funkcje.h
gcc -c funkcje.c
W związku z tym, że w nowym menu.c zastępującym main.c dorobiłem przyciski i minimalny interface, main.o zmienia się na gcc gtk libs i flags menu.c. To też działa!
Od jakieś wersji openCV wymagana jest kompilacja przez cmake, bo inaczej nie zadziała, gdyż pozmieniali biblioteki i takie tam.
Tu się zaczynają schody, w związku z tym, że jeden temat na forum, to ten dotyczy make w logu. Normalnie mamy wcześniej trzy pliki w jednym folderze, cmake chce, aby oddzielić pliki do folderów, tak wynika z tutoriala CMake https://cmake.org​/cmake-tutorial/ i jeszcze bardziej przerażającego tutoriala wiki https://cmake.org/Wiki/CMake​/Tutorials​/How_to_create_a_ProjectConfig.cmake_file.
Ja nie chcę żadnej wersji major, minor, z tego nie wiem na co mi h.in. Jest to wersja jedyna, jak sobie zrobię wersję 2 to ctrl+c ctrl+v, kopia pierwszej. Zacznijmy krok po kroku, bo robienie CMakeList.txt w każdym folderze robiłem.
Załóżmy, że są dwa foldery mylib1 gdzie jest main.c i mylib2 z funkcje.c funkcje.h a nawet z funkcje.o, do tego gdzieś jest folder build. Wszystko znajduje się w folderze FOLDER. W FOLDER oznaczmy CMakeList.txt jako neon.txt, w mylib1 leon.txt, w mylib2 kameleon.txt, dla rozróżniania tych folderów, podkreślam, nie ma żadnych major minor wersji, jest wersja general.
P-160117
Bielan
» 2017-04-17 09:33:57
Fajnie, a jakie jest konkretnie pytanie?
P-160197
Dashrek
Temat założony przez niniejszego użytkownika
Konkretnie
» 2017-04-17 14:28:58
Dzielę program zwyczajnie na dwa.
Są trzy pliki funkcje.c header funkcji funkcje.h i main.c.
Zwykły plik make daje radę, zaś stworzenie plików przez cmake nie. CMake jest mi potrzebny do bibliotek opencv, najnowsze da się tylko przez CMake. Obecnie mój program ma wszystkie funkcje i struktury w jednym pliku. Wcześniej miał w 4rech, jak był na terminal. Obecnie dorabiam przyciski i możliwość obsługi wielu formatów obrazów. Podział na kilka plików/bibliotek jest tylko dla umysłowego porządku. Cały ten CMake jest dla zaawansowanych zespołów programistycznych, dlatego najprostszy tutorial operuje na poleceniach preprocesora typu #define, gdzie są wpisane jakieś wersje programu Major, Minor- TE WERSJE PROGRAMU TO ALTERNATYWY NP. WCZYTAJ WERSJĘ MINOR, JAK MASZ GTK 2.0, WCZYTAJ WERSJĘ MAJOR, JAK MASZ GTK 3.0. Przez fakt, że mam jedną wersję własnego programu, to nie wiem co mam usunąć z pliku ich tutoriala, aby móc skompilować własną bibliotekę funkcji w tym syfie.
P-160201
Bielan
» 2017-04-17 19:04:51
Mówiłem już, fajnie.

Tylko dalej nie zadałeś konkretnego pytania pytania. Mimo całej twojej opowieści dalej wiem z czym konkretnie masz problem i jakiej konkretnie pomocy oczekujesz.
P-160218
mateczek
» 2017-04-17 19:25:17
"CMake jest mi potrzebny do bibliotek opencv, najnowsze da się tylko przez CMake"
Co się da tylko przez cmake?? Z czym masz problem ??
Czy ze skompilowaniem biblioteki??

Bo skoro twórcy biblioteki korzystają z cmake to niejako jesteś zmuszony użyć tego do kompilacji biblioteki. Ale wątpię, by istniała jakaś magiczna siła wymagająca cmake w własnych projektach korzystających z biblioteki.

Ja na co dzień korzystam z Qt Creatora i mi cmake wspiera.
https://youtu.be/XFgkk9hBkQc

Choć u mnie troszkę się różni bo system budowania wybieram w innym miejscu.
https://zapodaj.net/images​/26b7b60d7caa2.png
P-160221
« 1 »
  Strona 1 z 1