Korzystam z CMake z GNU Make i chciałbym zobaczyć wszystkie polecenia dokładnie (na przykład jak kompilator jest wykonywany, wszystkie flagi itp.).
GNU make ma --debug
, ale nie wydaje się pomocne, czy są jakieś inne opcje? Czy CMake zapewnia dodatkowe flagi w wygenerowanym pliku Makefile w celu debugowania?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Odpowiedzi:
Po uruchomieniu make dodaj,
VERBOSE=1
aby zobaczyć pełne dane wyjściowe polecenia. Na przykład:Lub możesz dodać
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
do polecenia cmake, aby uzyskać stałe pełne polecenie z wygenerowanych plików Makefiles.Aby zmniejszyć niektóre mniej interesujące wyniki, możesz użyć następujących opcji. Ta opcja
CMAKE_RULE_MESSAGES=OFF
usuwa linie takie jak [33%] Budowanie obiektu C ... , a polecenie--no-print-directory
make nie drukuje bieżącego katalogu odfiltrowującego linie takie jakmake[1]: Entering directory
imake[1]: Leaving directory
.źródło
cmake -GNinja . ; ninja -v
pokazuje bardzo ładne pełne wyjście z minimalnym puchem.cmake --build . -- VERBOSE=1
Wygodnie jest ustawić opcję w
CMakeLists.txt
pliku jako:źródło
CMAKE_VERBOSE_MAKEFILE
powinny być domyślnie wyłączone, a wybór użytkownika, jeśli jest potrzebny, do celów debugowania.Lub po prostu wyeksportuj zmienną środowiskową VERBOSE do powłoki w następujący sposób:
export VERBOSE=1
źródło
Jeśli używasz GUI CMake, przełącz się do widoku zaawansowanego, a następnie opcja nazywa się CMAKE_VERBOSE_MAKEFILE.
źródło
Próbowałem czegoś podobnego, aby zapewnić
-ggdb
flaga jest obecna.Zadzwoń do make w czystym katalogu i grep flagę, której szukasz. Szuka
debug
raczej niżggdb
bym po prostu pisał.make VERBOSE=1 | grep debug
-ggdb
Flaga była na tyle niejasne, że tylko polecenia kompilacji pojawiło się.źródło