Dans mon fichier main.h, j'ai #include "skybox.h"
. Dans skybox.h, stb_image.h est inclus (la dernière version de GitHub au 29-1-2017). Contrairement à toute autre bibliothèque que j'ai rencontrée, avant d'inclure stb_image.h, les docs disent #define STB_IMAGE_IMPLEMENTATION
. J'ai essayé de mettre ceci avant d'inclure stb_image.h (dans skybox.h), avant d'inclure skybox.h (dans main.h), les deux, et aucun. Aucun d'entre eux ne fonctionne, l'éditeur de liens affiche tous les doublons entre build/main.o et build/skybox.o.Erreur de symboles en double lors de l'inclusion du fichier contenant stb_image.h
ld: 33 symboles en double pour l'architecture x86_64
est l'erreur donnée lors de la liaison. En outre, je fais le #define à partir du fichier d'en-tête stb_image.h, mais j'ai essayé de le faire à partir du fichier source, ce qui ne m'aide pas.
Les notes dans le fichier d'en-tête indiquent de définir cette variable de préprocesseur dans exactement un fichier source pour définir l'implémentation. Est-ce ce que tu as fait? Comment compilez-vous et reliez-vous votre projet? Edit: il semble que vous le fassiez dans un fichier d'en-tête, qui serait inclus dans plusieurs fichiers sources - ce serait votre problème. –