Bonjour,
depuis peu je me suis tourné vers cmake pour compiler mes projets, et reste assez novice face à cet outil. Comme j'aime bien vérifier les fuites de mémoire dans mes projets, j'utilise valgrind, et plus spécifiquement:
valgrind --leak-check=full
Or, je me suis rendu compte de quelquechose d'assez embêtant. Si j'inclue la bibliothèque gtk3 dans mon projet, c'est-à-dire grâce à cmake, comme ceci:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
include_directories(${GTK3_INCLUDE_DIRS} include)
link_directories(${GTK3_LIBRARY_DIRS})
add_definitions(${GTK3_CFLAGS_OTHER} -g)
[...]
target_link_libraries(
../bin/ExprCalc
${GTK3_LIBRARIES}
) |
j'obtiens plein d'erreurs du style :
1 2 3 4 5 6 7 8 9 10 11
| 96 bytes in 1 blocks are possibly lost in loss record 216 of 243
==3587== at 0x4C29860: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==3587== by 0x69B1CD8: g_malloc0 (in /usr/lib/libglib-2.0.so.0.3800.2)
==3587== by 0x673EA14: ??? (in /usr/lib/libgobject-2.0.so.0.3800.2)
==3587== by 0x673EA85: ??? (in /usr/lib/libgobject-2.0.so.0.3800.2)
==3587== by 0x67431A3: g_type_register_fundamental (in /usr/lib/libgobject-2.0.so.0.3800.2)
==3587== by 0x674B12D: ??? (in /usr/lib/libgobject-2.0.so.0.3800.2)
==3587== by 0x671E9BC: ??? (in /usr/lib/libgobject-2.0.so.0.3800.2)
==3587== by 0x400E8E9: call_init.part.0 (in /usr/lib/ld-2.18.so)
==3587== by 0x400E9D2: _dl_init (in /usr/lib/ld-2.18.so)
==3587== by 0x40012A9: ??? (in /usr/lib/ld-2.18.so) |
Alors que si je retire, dans le fichier CMakeLists.txt tout ce qui fait référence à gtk3, il n'y a aucun souci, ça passe comme une lettre à la poste, et aucune erreur ne s'affiche .
Je vous remercie d'avance de toutes réponses
Partager