Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - kentosama

Pages: [1]
1
C / 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.

Pages: [1]