Bonsoir, j'utilise la SFML 2.4.2 avec Code Block, j'ai donc installer la SFML, l'installation s'est parfaitement dérouler (le code exemple qu'ils donnent s’exécute correctement sans problèmes), j'ai suivit ce tuto pour installer la SFML https://www.sfml-dev.org/tutorials/2.4/start-cb-fr.php
Mais j'ai un petit souci, je n'arrive pas à charger une image avec la SFML, voici mon code:
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::Texture texture;
if(!texture.loadFromFile("GTS.png", sf::IntRect(10, 10, 32, 32)))
std::cout << "erreur de chargement du fichier" << std::endl;
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
}
return 0;
}
J'ai un joli message d’erreur:
||=== Build: Debug in sfml (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `main':|
C:\Users\Magic\Desktop\sfml\main.cpp|9|undefined reference to `sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)'|
||error: ld returned 1 exit status|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Je ne comprend pas pourquoi sa ne fonctionne pas, j'ai suivit beaucoup de tuto (écrit et vidéo) mais sa n'a rien changer.
Merci d'avoir pris le temps de lire ce message et de m'aider
Ok, donc le problème se situe au niveau de la version du compilateur fournit par défaut avec Code::Blocks, à savoir gcc 5.1.0. Il n'y a pas de versions SFML pré-compilée qui soit compatible.
Donc 2 solutions :
installer la toute dernière version de gcc puis "recompiler" la SFML avec CMake pour qu'elle soit compatible avec cette dernière version, puis reconfigurer Code::Blocks
installer la dernière version de MinGW contenant gcc en version 6.3.0 qui est compatible avec la version SFML GCC 6.1.0 MinGW (DW2), puis reconfigurer Code::Blocks
Si tu es à l'aise avec CMake, autant passer par la première (perso j'ai déjà essayé mais sans succès :p). Sinon pour la 2ème solution, tu peux regarder -> ici.
Salut, désoler du nécro post, mais comme mon problème est toujours dans la même catégorie...
La SFML fonctionne parfaitement pour le graphique, j'arrive parfaitement à charger une image, la découper, l'atribuer, l'afficher, la faire bouger etc...
Mais le problème est l'audio, j'ai regarder le tuto audio du site SFML, j'ai codeblock 17.12, la SFML 2.4.2 et j'ai gcc en version 6.3.0 .
Le code plante dès que je met cette ligne:
sf::Music music;
Pourtant j'ai bien inclu les lib:
#include <SFML/Audio.hpp>
et dans le projet aussi:
Voici le code erreur:
||=== Build: Debug in test-sfml (compiler: GNU GCC Compiler) ===|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream4playEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|121|undefined reference to `_imp__alSourcePlay'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream5pauseEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|154|undefined reference to `_imp__alSourcePause'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZNK2sf11SoundStream16getPlayingOffsetEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|240|undefined reference to `_imp__alGetSourcef'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream10streamDataEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|282|undefined reference to `_imp__alGenBuffers'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|290|undefined reference to `_imp__alSourcePlay'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|297|undefined reference to `_imp__alSourcePause'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|388|undefined reference to `_imp__alSourceStop'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|394|undefined reference to `_imp__alSourcei'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|395|undefined reference to `_imp__alDeleteBuffers'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|314|undefined reference to `_imp__alSourcePlay'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|326|undefined reference to `_imp__alGetSourcei'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|332|undefined reference to `_imp__alSourceUnqueueBuffers'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|353|undefined reference to `_imp__alGetBufferi'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|354|undefined reference to `_imp__alGetBufferi'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream17fillAndPushBufferEj':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|437|undefined reference to `_imp__alBufferData'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|440|undefined reference to `_imp__alSourceQueueBuffers'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundStream.cpp.obj)||In function `ZN2sf11SoundStream10clearQueueEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|467|undefined reference to `_imp__alGetSourcei'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundStream.cpp|472|undefined reference to `_imp__alSourceUnqueueBuffers'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac5checkERNS_11InputStreamE':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|189|undefined reference to `FLAC__stream_decoder_new'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|197|undefined reference to `FLAC__stream_decoder_init_stream'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|200|undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|203|undefined reference to `FLAC__stream_decoder_finish'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|204|undefined reference to `FLAC__stream_decoder_delete'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4openERNS_11InputStreamERNS_15SoundFileReader4InfoE':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|230|undefined reference to `FLAC__stream_decoder_new'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|239|undefined reference to `FLAC__stream_decoder_init_stream'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|242|undefined reference to `FLAC__stream_decoder_process_until_end_of_metadata'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4seekEy':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|270|undefined reference to `FLAC__stream_decoder_seek_absolute'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac4readEPsy':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|308|undefined reference to `FLAC__stream_decoder_process_single'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|312|undefined reference to `FLAC__stream_decoder_get_state'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileReaderFlac5closeEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|325|undefined reference to `FLAC__stream_decoder_finish'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderFlac.cpp|326|undefined reference to `FLAC__stream_decoder_delete'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg5checkERNS_11InputStreamE':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|77|undefined reference to `ov_test_callbacks'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|79|undefined reference to `ov_clear'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4openERNS_11InputStreamERNS_15SoundFileReader4InfoE':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|109|undefined reference to `ov_open_callbacks'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|117|undefined reference to `ov_info'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|120|undefined reference to `ov_pcm_total'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4seekEy':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|134|undefined reference to `ov_pcm_seek'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg4readEPsy':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|148|undefined reference to `ov_read'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileReaderOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileReaderOgg5closeEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileReaderOgg.cpp|171|undefined reference to `ov_clear'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|69|undefined reference to `FLAC__stream_encoder_new'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|77|undefined reference to `FLAC__stream_encoder_set_channels'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|78|undefined reference to `FLAC__stream_encoder_set_bits_per_sample'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|79|undefined reference to `FLAC__stream_encoder_set_sample_rate'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|82|undefined reference to `FLAC__stream_encoder_init_file'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac5writeEPKsy':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|108|undefined reference to `FLAC__stream_encoder_process_interleaved'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterFlac.cpp.obj)||In function `ZN2sf4priv19SoundFileWriterFlac5closeEv':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|123|undefined reference to `FLAC__stream_encoder_finish'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterFlac.cpp|126|undefined reference to `FLAC__stream_encoder_delete'|
C:\Users\Magic\Desktop\Nouveau dossier (2)\SFML-2.4.2\lib\libsfml-audio-s-d.a(SoundFileWriterOgg.cpp.obj)||In function `ZN2sf4priv18SoundFileWriterOgg4openERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjj':|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|75|undefined reference to `ogg_stream_init'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|76|undefined reference to `vorbis_info_init'|
D:\sfml-release\_Sources\SFML\src\SFML\Audio\SoundFileWriterOgg.cpp|80|undefined reference to `vorbis_encode_init_vbr'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
Merci encore de votre aide
(au faite, j'ai aussi tenter de demander de l'aide à mon prof d'info, il a pas trouver non plus, bonne chance ^^')
J'en étais sûr que quelqu'un allait se manifester pour l'audio, pourtant suffit de lire la doc ^^. Et ton prof' est nul si il n'a pas trouvé.
Donc dans les tutos, on trouve ce paragraphe à la fin :
"Si vous utilisez le module sfml-audio (que ce soit dynamiquement ou statiquement), vous devez aussi copier la DLL de bibliothèque externe dont il dépend, qui est OpenAL32.dll. Ces fichiers se trouvent également dans <installation-de-sfml/bin>."
Ce qui veut dire que tu dois copier le OpenAL32.dll qui se trouve dans le dossier bin du dossier SFML. Ensuite suffit de le coller dans le dossier de ton programme (à la racine ça devrait le faire).
Et aussi, comme je l'ai dit dans le tuto, l'ordre de linkage est important !! La tu as mis le module audio en tête de liste, ba du coup ça fou le bordel et il n'y a plus rien qui fonctionne (en plus il manque des dépendances pour l'audio dans ta liste...)
Du coup, pour la config DEBUG :
sfml-graphics-s-d
sfml-window-s-d
sfml-audio-s-d
sfml-system-s-d
winmm
gdi32
opengl32
freetype
jpeg
openal32
flac
vorbisenc
vorbisfile
vorbisenc
ogg
Et pour la partie RELEASE :
sfml-graphics-s
sfml-window-s
sfml-audio-s
sfml-system-s
winmm
gdi32
opengl32
freetype
jpeg
openal32
flac
vorbisenc
vorbisfile
vorbisenc
ogg
Il faut vraiment comprendre ce principe de linkage et de dépendances, c'est important...
Re- merci pour l'aide et désoler pour ma réponse très tardive, je suis parvenu à corriger mes erreurs, sa fonctionne bien, j'ai fait 2 erreurs:
je n'avais pas inclut dans mon répertoire Openal32 et je n'avais pas linker les libs dans le bon ordre.
Encore merci pour m'être venue en aide.(et désoler du nécro-post mais je trouve sa poli de remercier ceux qui me viennent en aide)
- Edité par kkabu 13 mars 2018 à 21:24:48
SFML
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
...
...
...