Pytania otagowane jako cmake

CMake to wieloplatformowy generator systemów kompilacji typu open source. Generuje pliki dla systemów kompilacji, takich jak natywne pliki makefile, pliki kompilacji ninja i pliki projektów dla kilku zintegrowanych środowisk programistycznych.

3
Jak ustawić opcję CMake () w wierszu poleceń
Utworzyłem CMakeLists.txt, który zawiera następujące elementy project(P4V) cmake_minimum_required(VERSION 2.6) option(BUILD_STATIC_LIBS "Build the static library" ON) option(BUILD_SHARED_LIBS "Build the shared library" ON) option(BUILD_TESTS "Build test programs" OFF) include_directories(${CMAKE_SOURCE_DIR}/include) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) set(CMAKE_BUILD_TYPE Release) add_subdirectory(src) if(BUILD_TESTS) add_subdirectory(tests) endif(BUILD_TESTS) Domyślnie BUILD_TESTS jest WYŁĄCZONY, jak mogę go WŁĄCZYĆ bez GUI CMake, …

8
Jak używać CCache z CMake?
Chciałbym wykonać następujące czynności: Jeśli CCache jest obecny w PATH, użyj „ccache g ++” do kompilacji, w przeciwnym razie użyj g ++. Spróbowałem napisać mały skrypt my-cmake zawierający CC="ccache gcc" CXX="ccache g++" cmake $* ale wygląda na to, że nie działa (uruchomiona make nadal nie używa ccache; sprawdziłem to używając …
90 c++  unix  cmake  ccache 

10
CMake & CTest: make test nie tworzy testów
Próbuję CTest w CMake, aby automatycznie uruchamiać niektóre z moich testów przy użyciu make testcelu. Problem polega na tym, że CMake nie „rozumie”, że test, który chcę uruchomić, musi zostać zbudowany, ponieważ jest częścią projektu. Dlatego szukam sposobu na jawne określenie tej zależności.

5
Funkcja a makro w CMake
Oficjalny dokument CMake 2.8.12 mówi omacro Po wywołaniu polecenia zapisane w makrze są najpierw modyfikowane przez zastąpienie parametrów formalnych ($ {arg1}) przekazanymi argumentami, a następnie wywoływane jak zwykłe polecenia. i o function Po wywołaniu polecenia zapisane w funkcji są najpierw modyfikowane przez zastąpienie parametrów formalnych ($ {arg1}) przekazanymi argumentami, a …
89 cmake 

10
CMake nie może określić języka konsolidatora w C ++
Próbuję uruchomić program cmake hello world na Windows 7 x64 z Visual Studio 2010 i Cygwin, ale nie wydaje mi się, aby działał. Moja struktura katalogów jest następująca: HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ Robię a, cd builda po nim a cmake ..i …
89 c++  c  cmake 

13
Cmake nie znajduje Boost
Próbuję skonfigurować projekt za pomocą CMake, ale nie można znaleźć bibliotek Boost, mimo że znajdują się one w określonym folderze. Mam określony Boost_INCLUDE_DIR, Boost_LIBRARYDIRa BOOST_ROOT, ale nadal pojawia się błąd mówiący, że CUpewnij nie jest w stanie znaleźć motywację. Jaka może być przyczyna takiego błędu?
89 boost  cmake 

4
Ustaw opcje CFLAGS i CXXFLAGS za pomocą CMake
Chcę tylko debugować kod działający w systemie Linux i potrzebuję kompilacji debugowania ( -O0 -ggdb). Więc dodałem te rzeczy do mojego CMakeLists.txt: set(CMAKE_BUILD_TYPE DEBUG) set(CMAKE_C_FLAGS "-O0 -ggdb") set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb") set(CMAKE_CXX_FLAGS "-O0 -ggdb") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb") set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb") Kiedy próbowałem skompilować, włączyłem tryb gadatliwy make VERBOSE=1 …
88 cmake  cflags 

6
Jaki jest właściwy sposób używania `pkg-config` z` cmake`?
Rozglądając się po sieci, widziałem dużo kodu takiego: include(FindPkgConfig) pkg_search_module(SDL2 REQUIRED sdl2) target_include_directories(app SYSTEM PUBLIC ${SDL2_INCLUDE_DIRS} target_link_libraries(app ${SDL2_LIBRARIES}) Wydaje się jednak, że jest to niewłaściwy sposób robienia tego, ponieważ używa tylko katalogów dołączania i bibliotek, ale ignoruje definicje, ścieżki bibliotek i inne flagi, które mogą być zwracane przez pkg-config. Jaki …
87 cmake  pkg-config 



1
Jaka jest nowoczesna metoda ustawiania ogólnych flag kompilacji w CMake?
CMake oferuje wiele mechanizmów pobierania flag do kompilatora: CMAKE_<LANG>_FLAGS_<CONFIG> zmienne add_compile_options Komenda set_target_properties Komenda Czy jest jedna metoda, która jest preferowana w nowoczesnym zastosowaniu? Jeśli tak, dlaczego? Ponadto, w jaki sposób można używać tej metody w przypadku wielu systemów konfiguracyjnych, takich jak MSVC?
84 cmake 

1
Skonfiguruj CMake w Windows, aby używać clang z wiersza poleceń, aby uzyskać nowoczesną obsługę OpenMP
Mam mały projekt testowy , który używa OpenMP do równoległości. Moim celem jest skompilowanie go w taki sposób, aby tworzył .dlli .libdla bibliotek (ponieważ mój prawdziwy projekt łączy się z bibliotekami zewnętrznymi dystrybuowanymi przy użyciu tych typów), ze wsparciem dla OpenMP 4.5 lub nowszego i robię to z wiersza poleceń, …

1
CMake: Jak stwierdzić, skąd pochodzi zależność przechodnia?
Jestem w trakcie przepisywania starszej konfiguracji CMake, aby korzystać z nowoczesnych funkcji, takich jak automatyczne propagowanie zależności. (tj. używając rzeczy takich jak target_include_directories(<target> PUBLIC <dir>)zamiast include_directories(<dir>).) Obecnie ręcznie obsługujemy wszystkie informacje o zależnościach projektu, ustawiając kilka globalnych właściwości katalogu. Podczas moich testów znalazłem kilka przykładów, w których cel w nowej …
10 cmake 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.