2012-03-26 15 views
9

przez około 5 kolejnych dni Próbowałem skonfigurować mój komputer w środowisku C++ do programowania z bibliotekami takimi jak sdl, glm, opengl. jest to dla nas ważne, aby móc uruchamiać go na komputerach unixowych na prezentacjach, dzięki czemu działam z cmake. W końcu udało mi się pracować z cmake-gui, nawet nie próbuję już próbować żadnego IDE.Używanie cmake w oknach dla C++

Podałem mój projekt folderu i gdzie mogę zbudować pliki binarne, mam folder "CMakeFiles" wraz z txt "CMakeCache", plik CMAKE "cmake_install.cmake" i plik "Makefile". również w moim folderze "CMakeFiles" jest wiele innych folderów, takich jak "CMakeTmp", "CompilerIdC", "CompilerIdCXX itp." iw obu folderach "Compiler *" ma każdy .exe, który nie działa! więc gdzie jest mój poszukiwany plik wykonywalny?

Otworzyłem cmd i nawigowałem do mojego folderu i próbowałem napisać "make" tak jak powinniśmy postępować zgodnie z intruction. Niestety, nie działa bardzo dobrze. mając nadzieję, że możesz podzielić się swoją mądrością i pomóc nowicjuszowi jak ja!

co dokładnie jest potrzebne do kompilacji projektów zawierających dodatkowe biblioteki? do tej pory mam kompilator, Mingw32, najnowszy CMake i używanie cmake-gui do wyodrębniania plików binarnych, ale dostaje pliki makefile.

EDYTOWANIE: hrrm. czy tylko ja dostaję tego rodzaju problemy? Mogę dodać, że mam patrzeć dokładna około 10 tutoriale i 90% z etapów są podobne (jeśli kompilacji z VS, które próbowałem na początku):

  • Pobierz najnowszą SDL
  • Utwórz folder na przykład C: \ SDL z dwóch folderów, to i lib
  • Skopiuj libs i obejmuje od pobranych SDL
  • Poznaj nowych VS projektu otwórz VC++ katalogów i dodać folderze lib/wł na przykład C: \ SDL
  • Dodaj do łącznika SDL.lib i SDLmain.lib (upewniłem się, że zostały połączone, bez problemu)
  • Zmiana systemu WINDOWS (opcjonalnie, jeśli nie chcesz dwa okna)
  • Dodany należą do „dodatkowych bibliotek”
  • umieścić plik SDL.dll (które dostałem od najnowszej SDL) w moim C: \ Windows \ system32 (64SysWoW) , a także w moim pliku projektu.

więc co mam faktycznie szuka się gettning CUpewnij do pracy, ponieważ generuje i buduje źródła powodzeniem (z GUI) i czuję się im zamknięcie w. muszę dodawać żadnych dodatkowych bibliotek z SDL do mojego kompilatora mingw32 i/lub cmake?

+0

Trudno dokładnie wiedzieć, co dzieje się źle tutaj. Spróbuj powtórzyć krok 1 samouczka z http://www.cmake.org/cmake/help/cmake_tutorial.html i sprawdź, czy to działa. Jeśli nie, opublikuj dokładnie to, co nie działa. – jkerian

+0

Użyj polecenia CMake, aby wygenerować pliki projektu Visual Studio dla swojego projektu, a następnie użyj programu Visual Studio do skompilowania go. – karlphillip

+0

@karlphillip Zrobiłem to również (przy 10 Express) i uruchomiłem skompilowany plik, i udało mi się skompilować plik i otrzymałem "1 powiodło się, e 0 nie powiodło się, 1 aktualny, 1 pominięty" i po naciśnięciu play Mam: C: \ .......... \ Debug \ ALL_BUILD System nie może znaleźć pliku określonego –

Odpowiedz

5

Już prawie przyszedłeś z Visual Studio. Wybierz Visual Studio jako cel. Otwórz wygenerowany projekt w Visual Studio, skompiluj go. (tak jak ty to zrobiłeś). Następnie, zamiast próbować uruchomić BUILD_ALL, uruchom prawdziwy projekt, który tworzy plik wykonywalny, powinien również znajdować się na tej liście. Kliknij go prawym przyciskiem myszy i "zagraj".

Jeśli nadal pojawiają się błędy, opublikuj je szczegółowo, w tym, co zrobiłeś przed błędem. Uwaga: starannie skonfigurowany projekt CMake na różnych platformach (zwany również CMakeLists.txt) nie powinien wymagać manipulowania katalogami VC++. Powinien działać automagicznie, szczególnie w przypadku dobrze znanych bibliotek, takich jak SDL.

+0

Wow, faktycznie działało. i kiedy muszę uruchomić ten projekt VS na ubuntu, mogę po prostu skopiować cały folder projektu i mam nadzieję, że skompiluję go ponownie bez problemu? –

+0

W zależności od definicji "folderu projektu" :) Cmake oczekuje następującego przepływu pracy: uruchom program CMake w katalogu zawierającym pliki źródłowe i plik CMakeLists.txt. Wygeneruj pliki projektu w zależności od platformy. Uruchom narzędzie IDE lub inne narzędzia, aby skompilować projekt, korzystając z wygenerowanych plików projektu. (takich jak Make + GCC, Visual Studio, ...) – Bob

+0

Yaman: Musisz skopiować wszystkie CMakeFiles i uruchomić cmake ponownie pod Ubuntu. Nie można oczekiwać, że dwa różne systemy będą miały te same wersje bibliotek zainstalowanych w tym samym miejscu. CMake jest tutaj właśnie z tego powodu - aby umożliwić konfigurację projektu w heterogenicznym środowisku. – stativ

1

Jeśli zrozumiałem to poprawnie, chcesz użyć CMake w swoim projekcie. Używam CMake we wszystkich moich projektach.Nie udzielę ci dokładnego poradnika krok po kroku, ponieważ używam Arch Linux, ale użyłem go także w Windows 7.

  1. Aby CUpewnij znaleźć biblioteki, często jest to potrzebne, aby ustawić zmienną środowiskową CMAKE_PREFIX_PATH dlatego zwraca się do katalogów, w których są zainstalowane zależności od projektu.
  2. Ustawia zmienną PATH, aby można było wywołać kompilator i wykonać wywołanie, np. Przez wywołanie. make. Myślę, że musisz zrobić to ręcznie niż dla Mingw32, w Visual Studio możesz użyć "Visual Studio Command Propt", który już posiada te zmienne.
  3. Uruchom CMake z żądanym generatorem. Aby wybrać generator z wiersza poleceń, użyj przełącznika -G. prawdopodobnie będzie używać jednego z następujących (w ... oznaczają inne opcje, które chcesz przekazać do cmake)

    Dla GNU make stosowane w MinGW używać cmake -G "MinGW Makefiles" ...

    Dla nUpewnij z visual studio używać cmake -G "NMake Makefiles" ...

    Możliwe jest również utworzenie projektu Visual Studio, ale nie polecam go, ponieważ wtedy trudno jest skonfigurować automatyczne kompilacje. Miałem też pewne problemy z zależnościami, gdy próbowałem użyć projektu VS.

  4. zmiana katalogu do katalogu budowlanej (tj. Ten, w którym nazywa cmake, zawiera plik CMakeCache) i uruchomić make lub nmake
4

jeśli uruchomić cmake poleceniem:

cmake -G "Visual Studio 14 Win64" path\to\source\dir 

należy uruchomić tę komendę, aby kontynuować (w wiersz polecenia programu Visual Studio):

msbuild Project.sln 

albo po uruchomieniu cmake:

cmake -G "NMake Makefiles" path\to\source\dir 

trzeba uruchomić to polecenie cmd, aby kontynuować (w Visual Studio wiersza polecenia):

nmake