Je travaille et sur un grand projet C ++ et je le fais compiler avec Clang serait douloureux, alors je suis coincé avec GCC.
Je veux utiliser le Nice J'ai fait un exemple très simple pour le tester: P> -Fsanitize = fuite code > Drapeau que j'ai déjà utilisé avec Clang sur un emploi précédent, mais cela ne semble pas fonctionner. P>
g++ -fsanitize=address main.cpp
ASAN_OPTIONS=detect_leaks=1 ./a.out
3 Réponses :
Vous devez lire ceci et utiliser le patch: p>
https://gcc.gnu.org/ml/ GCC-patchs / 2013-11 / msg01874.html p>
Nice, il semble que le désinfectant soit la même chose que Clang. J'ai trouvé un article de blog sur la façon de l'utiliser avec qt, il devrait être assez proche de l'utiliser sans qt: blog.qt.io/blog/2013/04/17/...
Je l'ai résolu avec GCC 5.1 (j'utilisais 4.9). P>
Edit: On dirait que 5.2 ne fonctionne pas non plus EDIT2: Cela ne fonctionne pas avec le GCC fourni avec Ubuntu 15.10 (5.2.1), mais j'ai recompilé un 5.2.0 des sources et cela a bien fonctionné. Je n'ai vraiment aucune idée. P>
Ça marche pour moi. Si cela ne fonctionne pas pour vous, vous devez signaler un bogue à votre distribution (si vous avez installé un GCC pré-compilé) ou directement sur GCC si vous l'avez compilée à partir de la source.
Quelle version utilisez-vous? Avec le GCC (5.1.1) fourni avec Ubuntu 15.04, c'est bien, mais je ne peux pas le faire fonctionner avec GCC 5.2.1 (Ubuntu 15.10). J'ai compilé un GCC 5.1 sur un Ubuntu 15.10 et c'était bien, alors je pense vraiment que c'est une régression. Je vais essayer avec un recompilé 5.2 juste pour être sûr.
J'utilise 5.2.1 des tests Debian. Veuillez signaler ce problème à Ubuntu.
Je cherche d'abord des options de compilation pour GCC
J'ai eu le même problème (avec Ubuntu 15.04 et GCC 4.9.2). P>
Utiliser 1) Forcer la liaison lors de la compilation p>
2) exécuter avec p>
ldd code> J'ai remarqué que
liblsan.so code> n'était pas lié, alors voici comment je l'ai réparé: P>
>> GCC -FSanitize = fuite main.cpp -llsan code> p>
./.out code> p>
Faire votre plate-forme de code indépendante est un effort qui paiera à long terme. Le rendre compatible avec Clang est une première étape dans la bonne direction. Vas-y ;-)
Je suis d'accord, et ce n'est généralement pas si long / difficile de le faire. Et dans certains cas, Clang a trouvé des avertissements intéressants dans votre code que GCC ne voit pas
Je suis d'accord avec vous les gars, mais nous avons des caractéristiques que Clang a des problèmes, comme le code de montage.
Ai-je manqué une mention de la version GCC dans votre message? GCC-5 semble faire ce que vous voulez.
En effet je n'ai pas précisé cela. J'utilise GCC 4.9. Je vais essayer GCC 5 Asap!