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.
Próbuję uzyskać system kompilacji na różnych platformach działający przy użyciu CMake. Teraz oprogramowanie ma kilka zależności. Sam je skompilowałem i zainstalowałem w swoim systemie. Przykładowe pliki, które zostały zainstalowane: -- Installing: /usr/local/share/SomeLib/SomeDir/somefile -- Installing: /usr/local/share/SomeLib/SomeDir/someotherfile -- Installing: /usr/local/lib/SomeLib/somesharedlibrary -- Installing: /usr/local/lib/SomeLib/cmake/FindSomeLib.cmake -- Installing: /usr/local/lib/SomeLib/cmake/HelperFile.cmake Teraz CMake ma, find_package()który otwiera Find*.cmakeplik …
Rozważam przejście projektu wieloplatformowego z oddzielnych systemów zarządzania kompilacją w Visual C ++, XCode i makefile na CMake. Jedną z podstawowych funkcji, których potrzebuję, jest automatyczne dodawanie wszystkich plików w katalogu do celu. Chociaż jest to łatwe do zrobienia w make, nie jest to łatwe do wykonania w Visual C …
Nie proszę o to tylko dla siebie. Mam nadzieję, że to pytanie będzie punktem odniesienia dla wielu początkujących, którzy mnie lubią, i uznało to za całkowicie zakłopotane, co dokładnie dzieje się za kulisami, gdy dla tak małego CMakeLists.txtpliku cmake_minimum_required (VERSION 2.6) project(Tutorial) add_executable(Tutorial tutorial.cpp) i taki mały tutorial.cpp int main() …
CMake oferuje kilka sposobów określania plików źródłowych dla celu. Jednym z nich jest użycie globbingu ( dokumentacji ), na przykład: FILE(GLOB MY_SRCS dir/*) Inną metodą jest określenie każdego pliku osobno. Który sposób jest preferowany? Globbing wydaje się łatwy, ale słyszałem, że ma pewne wady.
Mamy zestaw wieloplatformowych skryptów kompilacji CMake i wspieramy budowanie za pomocą Visual C ++ i GCC . Próbujemy Clang , ale nie mogę dowiedzieć się, jak sprawdzić, czy kompilator jest Clang z naszym skryptem CMake. Co powinienem przetestować, aby sprawdzić, czy kompilator jest Clang, czy nie? Obecnie używamy MSVCi CMAKE_COMPILER_IS_GNU<LANG>do …
Mam strukturę katalogów dla mojego kodu C ++, która wygląda następująco: | |->include |->src Piszę plik CMakeLists.txt dla mojego kodu. Chcę zrozumieć różnicę między include_directoriesi target_include_directoriesw CMake. Jaka jest różnica między ich użyciem i aby dodać ścieżkę do pliku dołączanego, której powinienem użyć?
Próbuję ustrukturyzować mój projekt, aby uwzględnić źródła produkcji (w srcpodfolderze) i testy (w testpodfolderze). Do zbudowania tego używam CMake. Jako minimalny przykład mam następujące pliki: CMakeLists.txt: cmake_minimum_required (VERSION 2.8) project (TEST) add_subdirectory (src) add_subdirectory (test) src / CMakeLists.txt: add_executable (demo main.cpp sqr.cpp) src / sqr.h #ifndef SQR_H #define SQR_H double …
Czy jest możliwe aby skompilować projekt w wersji 32-bitowej z cmakei gccna 64-bitowym systemie? Pewnie tak, ale jak to zrobić? Kiedy wypróbowałem to w "ignorancki" sposób, bez ustawiania żadnych parametrów / flag / itp., Po prostu ustawienie LD_LIBRARY_PATHznajdowania powiązanych bibliotek ~/tools/libwydaje się ignorować to i szukać tylko w podkatalogach o …
Jak sprawić, by CMake połączył plik wykonywalny z zewnętrzną biblioteką udostępnioną, która nie jest skompilowana w ramach tego samego projektu CMake? Samo działanie target_link_libraries(GLBall ${CMAKE_BINARY_DIR}/res/mylib.so)daje błąd make[2]: *** No rule to make target `res/mylib.so', needed by `GLBall'. Stop. make[1]: *** [CMakeFiles/GLBall.dir/all] Error 2 make: *** [all] Error 2 (GLBall is …
Niedawno sprzedano mi używanie CMake do kompilowania moich projektów C ++ i teraz chciałbym rozpocząć pisanie testów jednostkowych dla mojego kodu. Zdecydowałem się skorzystać z narzędzia Google Test, aby pomóc w tym, ale potrzebuję pomocy w rozpoczęciu. Przez cały dzień czytałem różne przewodniki i przykłady, w tym Primer , wprowadzenie …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.