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

Auteur Sujet: CMake & SFML  (Lu 6910 fois)

0 Membres et 4 Invités sur ce sujet

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
CMake & SFML
« le: Juin 05, 2015, 03:04:57 am »
Bonjour, j'ai un soucis avec CMake pour lier mon exe avec sfml lors du build.

Il me sort tout un tas de "in function _____________" in ___Window___ undefined reference to ______"

(puis après pareil avec graphics, puis encore après avec system (dans cet ordre là)

Du coup, j'ai cru que j'avais simplement mis les paquets requis dans find_package dans le mauvais ordre, alors j'ai essayé l'ordre inverse, mais c'est pire.

Finalement, j'vous montre le CMake parce que je sais pas si j'ai fait des bétises en surface ou en profondeur avec CMake :

Citer

cmake_minimum_required(VERSION 3.2)
project(testSFML)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set(EXECUTABLE_NAME testSFML)

add_executable(${EXECUTABLE_NAME} ${SOURCE_FILES})
# Detect and add SFML
#Find any version 2.X of SFML
#See the FindSFML.cmake file for additional details and instructions

set(SFML_STATIC_LIBRARIES TRUE)

find_package(SFML 2 REQUIRED  network audio window graphics system)


if(SFML_FOUND)

    include_directories(${SFML_INCLUDE_DIR})
    target_link_libraries(${EXECUTABLE_NAME} ${SFML_LIBRARIES})
    #message(WARNING ${SFML_LIBRARIES})

endif()

Je suis sous windows, j'utilise mingw w64, j'ai la version 64 bits de SFML, CLion (ça devrait rien changer), et je compte utiliser la librairie statique de sfml

Des idées ?

Je tiens à préciser que j'ai fait des recherches, la plupart du temps, il semblerait qu'il s'agisse simplement de changer l'ordre des packages à installer. J'ai bien mis window puis graphics puis system, (même si j'ai essayé dans l'autre ordre, pour tester au moins ...)

nb : c'est la premiere fois que j'utilise une lib sous windows.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #1 le: Juin 05, 2015, 07:35:09 am »
Citer
j'utilise mingw w64
32 ou 64 bits (oui, il peut faire les deux) ?

Citer
J'ai bien mis window puis graphics
C'est l'inverse.
Laurent Gomila - SFML developer

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #2 le: Juin 05, 2015, 02:29:30 pm »
find_package(SFML 2 REQUIRED  network audio graphics window system)

Donc dans cet ordre là ?

Donc a priori ça peut être que j'essaye de compiler en 32 bits ? Je sais pas du tout comment changer ce parametre honnêtement. Je regarde


Edit : Si c'est CMAKE_MAKE_PROGRAM qui contient la façon de faire 64 ou 32 bits, alors j'ai changé
Citer
C:/MinGW/bin/mingw32-make.exe
en
Citer
C:/MinGW/bin/mingw64-make.exe
« Modifié: Juin 05, 2015, 10:45:16 pm par GuillaumePA »

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #3 le: Juin 07, 2015, 02:00:43 am »
Je n'arrive vraiment à rien, du coup j'double post (désolé).
 là c'est les erreurs que j'obtiens en builant mon programme
Citer
#include <iostream>
    #include <SFML/graphics.hpp>
   
    using namespace std;
   
    int main () {
        cout << "Hello, World!" << endl;
   
        sf::RenderWindow window(sf::VideoMode(800, 600), "My window");
   
        return 0;
    }

programme qui sert juste pour tester la compilation.

là c'est les erreurs que je choppe en compilation http://pastebin.com/bamTN62F

Comment être sûr que je compile bien en x86_64 ?

dans le cache CMake, CMAKE_CXX_STANDARD_LIBRARIES sont -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32

CMAKE_CXX_COMPILER est C:/MinGW/bin/g++.exe

CMAKE_MAKE_PROGRAM est C:/MinGW/bin/mingw32-make.exe

Quelqu'un a des idées ?
Citer
... y'a ptet un pépin dans le fait que D:\sfml-release\... blablabla n'existe pas
une raison pour ça ?

Bon, il existe maintenant, et rien à changé, sauf que je peux voir le corps de certains fonction qu'il dit "indéfinies". J'ai récup le code sur github oO m'enfin.
« Modifié: Juin 07, 2015, 02:15:09 am par GuillaumePA »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #4 le: Juin 07, 2015, 10:10:22 am »
Est-ce que tu peux donner la liste des bibliothèques liées à ton projet ? Soit en examinant le projet/makefile généré par CMake, soit en lançant la compilation en mode verbose.
Laurent Gomila - SFML developer

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : CMake & SFML
« Réponse #5 le: Juin 07, 2015, 08:06:09 pm »
Pas sensible à la case le compilateur ?

Citer
#include <SFML/Graphics.hpp>

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #6 le: Juin 07, 2015, 09:00:07 pm »
Citer
Pas sensible à la case le compilateur ?
Ca dépend de l'OS. Donc sous Windows, non, pas sensible à la casse.
Laurent Gomila - SFML developer

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : Re : CMake & SFML
« Réponse #7 le: Juin 08, 2015, 04:09:52 pm »
Est-ce que tu peux donner la liste des bibliothèques liées à ton projet ? Soit en examinant le projet/makefile généré par CMake, soit en lançant la compilation en mode verbose.

http://pastebin.com/Utvf0LFG

Voilà. C'est sûrement un truc àlacon hein. >.>

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #8 le: Juin 08, 2015, 06:01:52 pm »
Je ne vois pas de bibliothèques liées là-dedans. Tu es sûr que tu as exécuté la bonne commande ?
Laurent Gomila - SFML developer

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #9 le: Juin 08, 2015, 06:25:33 pm »
Vraiment pas, j'ai mis -v sur la compilation, mais si ça se trouve, j'ai pas linké comme une tâche.

J'ai réussi à trouvé le makefile (finalement) :

Citer
BASE=http://www.w3.org/Math/RelaxNG/mathml3
FILES=\
mathml3-common.rnc \
mathml3-content.rnc \
mathml3-presentation.rnc \
mathml3-strict-content.rnc \
mathml3.rnc
CURL=curl
CURLFLAGS=-s
PATCH=patch
PATCHFLAGS=

all:
   for file in $(FILES); do $(CURL) $(CURLFLAGS) $(BASE)/$$file > $$file; done
   $(PATCH) $(PATCHFLAGS) < patch-vnu

clean:
   $(RM) $(FILES)


C'est bien ça ? ça m'parait bizarre.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #10 le: Juin 08, 2015, 07:49:59 pm »
Hmm... ça ne ressemble pas à un makefile de projet C++.
Laurent Gomila - SFML developer

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #11 le: Juin 08, 2015, 08:42:58 pm »
J'y connais rien du tout à makefile. De plus, CLion est vraiment top pour coder, mais tout le reste, il est probablement le plus mauvais du marché (surtout pour un logiciel payant).

Une idée de ce que je peux faire pour répondre aux questions pertinentes ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : CMake & SFML
« Réponse #12 le: Juin 08, 2015, 10:13:49 pm »
La réponse que je vais te donner est un peu paresseuse de ma part, mais c'est certainement la meilleure sur le long terme : apprend d'abord à te servir correctement de ton environnement de développement. Si tu ne sais pas te dépatouiller avec ton EDI, tu vas buter sur ce genre de problèmes à chaque nouvelle bibliothèque que tu vas utiliser, ou à chaque nouveau truc que tu vas devoir faire.
Laurent Gomila - SFML developer

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #13 le: Juin 08, 2015, 10:33:04 pm »
Tu as bien raison, mais bon, dans ce cas, je dois d'abord m'habituer à programmer sous windows ... c'est ça la vraie galère.

Edit : j'recommence tout depuis le début, essayer de faire propre.
« Modifié: Juin 08, 2015, 11:12:08 pm par GuillaumePA »

GuillaumePA

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : CMake & SFML
« Réponse #14 le: Juin 11, 2015, 01:21:31 am »
Re !
J'ai quelques questions si vous le permettez :
https://github.com/SFML/SFML/wiki/Tutorial:-Build-your-SFML-project-with-CMake
dans ce lien, quand dans la rubrique compilation il est précisé : "If you installed SFML to a nonstandard place and CMake cannot find it, you'll need to add the location of the libraries manually. "

Quelle est la place standard de SFML ?
Quand on nous dit de creer un dossier "cmake_modules" et de placer FINDsfml.cmake, où faut il le placer ?
avec les sources ? dans cmake ? dans l'compilo ? etc etc

A quoi correspondent les versions mineures et majeures ?

Merci  beaucoup.
« Modifié: Juin 11, 2015, 01:23:38 am par GuillaumePA »