SWI-Prolog Interface C++ problème linker
Bonjour à tous.
Dans le cadre d'un projet que je réalise pour les cours, je suis amené à utiliser l'interface C++ SWI-Prolog. J'ai donc utilisé l'installateur fourni par le site pour installer Prolog ainsi que les librairies sur mon ordinateur. J'utilise l'IDE Clion car tout le monde ne travail pas sous windows pour le projet, et donc la chaîne de compilation MinGW. Voici mon CmakeList.txt :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
cmake_minimum_required(VERSION 3.7)
project(Split)
set(CMAKE_CXX_STANDARD 11)
# Compilation de SFML
link_directories(./lib/SFML/lib/)
include_directories(./lib/SFML/include/)
add_subdirectory(./lib/SFML/)
# Ajout de la localisation de SWI-Prolog
link_directories(/Program\ Files/swipl/lib)
include_directories(/Program\ Files/swipl/include)
# Changement du dossier de sortie
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/)
set(SOURCE_FILES main.cpp Core/Window.cpp Core/Window.h)
add_executable(Split ${SOURCE_FILES})
target_link_libraries(Split sfml-graphics sfml-window sfml-system swipl)
# Copie des dll dans le dossier de l'exécutable généré
file(COPY "./cmake-build-debug/lib/SFML/lib/" DESTINATION "${CMAKE_SOURCE_DIR}/bin/") |
J'ai donc bien indiqué les différents chemins vers les dossiers contenant les librairies ainsi que les headers. J'ai également ajouté dans ma variable d'environnement %PATH% le chemin vers le dossier bin/ qui contient toutes les DLLs. Cependant lors de la compilation je me retrouve avec l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
[ 23%] Built target sfml-system
[ 53%] Built target sfml-window
[ 97%] Built target sfml-graphics
[ 98%] Linking CXX executable ..\bin\Split.exe
CMakeFiles\Split.dir/objects.a(main.cpp.obj): In function `main':
C:/Users/user/CLionProjects/Split/main.cpp:35: undefined reference to `PL_initialise'
C:/Users/user/CLionProjects/Split/main.cpp:38: undefined reference to `PL_halt'
C:/Users/user/CLionProjects/Split/main.cpp:43: undefined reference to `PL_halt'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [../bin/Split.exe] Error 1
CMakeFiles\Split.dir\build.make:128: recipe for target '../bin/Split.exe' failed
mingw32-make.exe[2]: *** [CMakeFiles/Split.dir/all] Error 2
CMakeFiles\Makefile2:68: recipe for target 'CMakeFiles/Split.dir/all' failed
mingw32-make.exe[1]: *** [CMakeFiles/Split.dir/rule] Error 2
CMakeFiles\Makefile2:80: recipe for target 'CMakeFiles/Split.dir/rule' failed
Makefile:161: recipe for target 'Split' failed
mingw32-make.exe: *** [Split] Error 2 |
Je tiens à préciser que ni l'interface C ni l'interface C++ ne se link à la fin de la compilation...
J'ai fouillé sur internet mais je n'ai pas trouvé de solution pertinente à mon problème, je m'en remet donc à vous :D !
En vous remerciant d'avance pour vos réponses :)