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 :
Le compilateur me retourne ces erreurs :
Pour compiler le projet, j'utilise cmake. Voici mon CMakeLists :
Pourriez-vous m'indiquer ce que je dois faire pour réparer les liens lors de la compilation?
Merci d'avance.
#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;
}
#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
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})
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.