Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Référence indéfinie vers « sfRenderWindow_create »  (Lu 2335 fois)

0 Membres et 1 Invité sur ce sujet

kentosama

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
Référence indéfinie vers « sfRenderWindow_create »
« le: Octobre 14, 2020, 09:52:48 am »
Bonjour, j'aimerais utiliser CSFML et je n'arrive pas à compiler un simple programme :

#include "SFML/Graphics.h"

#define TRUE 1
#define FALSE 0

int main(int argc, const char *argv[])
{
    sfRenderWindow *renderWindow = sfRenderWindow_create((sfVideoMode) {800, 600, 32}, "SFLM SAMPLE", 0, NULL);
    sfRenderWindow_setFramerateLimit(renderWindow, 60);

    while(sfRenderWindow_isOpen(renderWindow))
    {
        sfEvent event;
       
        while(sfRenderWindow_pollEvent(renderWindow, &event))
        {
            if(event.type == sfEvtClosed)
            {
                sfRenderWindow_close(renderWindow);
            }
        }

        sfRenderWindow_clear(renderWindow, (sfColor) {0, 0, 0});
        sfRenderWindow_display(renderWindow);
    }

    return 0;
}

Le compilateur me retourne ces erreurs :

/usr/bin/ld : CMakeFiles/sprite.dir/src/main.c.o : dans la fonction « main » :
main.c:(.text+0x52) : référence indéfinie vers « sfRenderWindow_create »
/usr/bin/ld : main.c:(.text+0x67) : référence indéfinie vers « sfRenderWindow_setFramerateLimit »
/usr/bin/ld : main.c:(.text+0x7c) : référence indéfinie vers « sfRenderWindow_close »
/usr/bin/ld : main.c:(.text+0x8f) : référence indéfinie vers « sfRenderWindow_pollEvent »
/usr/bin/ld : main.c:(.text+0xa6) : référence indéfinie vers « sfRenderWindow_clear »
/usr/bin/ld : main.c:(.text+0xb2) : référence indéfinie vers « sfRenderWindow_display »
/usr/bin/ld : main.c:(.text+0xbe) : référence indéfinie vers « sfRenderWindow_isOpen »
collect2: erreur: ld a retourné le statut de sortie 1
make[2]: *** [CMakeFiles/sprite.dir/build.make:108 : sprite] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:95 : CMakeFiles/sprite.dir/all] Erreur 2
make: *** [Makefile:103 : all] Erreur 2

Pour compiler le projet, j'utilise cmake. Voici mon CMakeLists :

cmake_minimum_required(VERSION 3.10)

project(sprite)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

find_package(SFML REQUIRED network audio graphics window system)
include_directories(${SFML_INCLUDE_DIR})

file(GLOB_RECURSE SRCS "src/*.h" "src/*.c")  
add_executable(sprite ${SRCS})
target_link_libraries(sprite PRIVATE ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})

Pourriez-vous m'indiquer ce que je dois faire pour réparer les liens lors de la compilation?

Merci d'avance.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re: Référence indéfinie vers « sfRenderWindow_create »
« Réponse #1 le: Octobre 14, 2020, 12:43:10 pm »
find_package(SFML) trouve SFML. Il n'y a pas d'équivalent pour CSFML, il faut donc inclure et lier à la mano.
Laurent Gomila - SFML developer