Mesaj ifadesi CMakeLists.txt
dışında dosyalarda hata ayıklama (en azından değişkenlerin listesi) imkanı var mı ?
Yanıtlar:
CMake için hiç interaktif ayıklayıcı ancak aynı zamanda bayrakları vardır, yoktur -Wdev
, --debug-output
ve --trace
hangi kudreti yardımcı olur. Ayrıca , CMake tarafından çağrılan işlemlerin çıktılarını toplayan CMakeFiles\CMakeOutput.log
ve günlük dosyalarını kontrol etmeyi de unutmayın CMakeFiles\CMakeError.log
(örneğin, bir tür veya başlığın varlığını kontrol ederken).
Sürüm 3.7'den bu yana CMake artık resmi olarak bir "sunucu modunu" destekliyor, bu nedenle IDE'lerdeki entegrasyonun yakın gelecekte gelişmesi muhtemel. İlk destek hem var olan Qt Creator ve Visual Studio 2017 RC
if
İfadelerin hatalarını ayıklamak için hangisini kullanıyoruz CmakeList.txt
? came --debug ...
ve cmake --debug-output ...
bunları yazdırmıyor. Bash'de eşdeğeri bash -x <cmd>
.
--trace
genellikle oldukça kapsamlı (çıktıyı bir dosyaya yeniden yönlendirin!)
string(STRIP ...)
kırılmıştı. Ayrıca Cmake değişkeninde son satırsonu satırını nasıl çıkarırsınız? . Ne olduğunu bilmiyorsanız özür dilerim bash -x
.
VisualGDB aracı tarafından sağlanan yeni CMake Script Debugger'ı kullanmayı deneyebilirsiniz . CMakeLists.txt dosyalarında adım atmayı, kod / veri kesme noktalarını ayarlamayı, değişkenleri değerlendirmeyi / değiştirmeyi vb. Destekleyen açık kaynaklı bir CMake çatalı kullanır .
Burada yeni hata ayıklayıcı hakkında ayrıntılı bir adım adım öğretici var
Steveire'nin CMake Daemon Araçları vardır . Onları kendim kullanmadım, ancak bir hata ayıklayıcıya oldukça yakın görünen iç gözlem için olanaklar sunduklarını iddia ediyorlar.
Düzenleme : Artık CMake-server olarak adlandırılıyorlar ve CMake 3.7'nin bir parçası.
CMakeLists.txt dosyalarımda "hata ayıklamak" için variable_watch kullanmayı seviyorum . Senaryomun üstüne koyman yeterli:
variable_watch(SOME_MY_VAR)
Ayrıca env varyantını okuyun VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.html
Bunu şu şekilde kullandım:
export VERBOSE=defined
make
ve biraz daha ayrıntı var.
Diğer durumlarda, CMakeLists.txt
dosyayı aşağıdaki satırı içerecek şekilde düzenleyin :
set(CMAKE_VERBOSE_MAKEFILE ON)
(Bununla ilgili bazı yazılar https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).
Ayrıca, cmake
hata ayıklama çıktısını kontrol eden kullanışlı seçenekler vardır, şu kılavuza bakın: https://cmake.org/cmake/help/latest/manual/cmake.1.html