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

Auteur Sujet: Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits  (Lu 7953 fois)

0 Membres et 1 Invité sur ce sujet

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« le: Octobre 23, 2013, 10:57:43 pm »
Bonjour,
J'ai suivis le tuto, et j'ai réussi a compiler la SFML 2.1 pour Visual Studio 2013 en 32bits.

Pour le 64bits, je lance vcvars64.bat au lieu de vcvars32.bat

Sauf que ça me compile du 32bits.
Donc je modifie les types de compilation, et remplace du coup Win32 par x64, sauf que du coup j'ai une erreur qui me dit que Clock.obj est de type x86 et pas x64.
Je suppose qu'il y a un lien vers des libs en x86 a convertir en x64, mais quoi?

Merci :)

PS: J'ai vu que ça avait compilé en 32bits, parce que pour mon projet a la compilation en 64bits il m'as dit que la SFML était en x86.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #1 le: Octobre 24, 2013, 07:41:50 am »
Tu as choisi quoi comme générateur dans CMake pour compiler en 64 bits ? Si ce n'est pas "NMake makefiles" ça ne sert à rien d'invoquer vcvars64.bat, il faut plutôt choisir explicitement le générateur correspondant ("Visual Studio 2013 x64").
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #2 le: Octobre 24, 2013, 02:21:50 pm »
Bah, j'ai fait:
/blablablabla/blablabla/vcvars64.bat
cmake CMakelists.txt
et j'ai ouvert ALLBUILD avec Visual, c'était bien ça qu'il fallait faire?
Merci :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #3 le: Octobre 24, 2013, 02:41:54 pm »
Non pas du tout. Relis bien la doc de CMake et le tutoriel de compilation de SFML, tout est très clairement expliqué.

Pour faire simple (mais ça ne t'empêche pas de potasser la doc tout de même) :

1. il faut choisir un générateur

2. si tu génères une solution Visual Studio alors il faut ouvrir le fichier solution, pas le projet ALL_BUILD

3. "cmake .", pas "cmake CMakeLists.txt"
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #4 le: Octobre 24, 2013, 02:43:29 pm »
Le tutoriel de compilation n'explique pas pour compiler en 64bits, et il ne propose aucune variable de CMake pour faire ça...
J'ai été ici:
http://www.sfml-dev.org/tutorials/2.1/start-vc-fr.php
Et là:
http://www.sfml-dev.org/tutorials/2.1/compile-with-cmake-fr.php
Merci :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #5 le: Octobre 24, 2013, 02:49:36 pm »
Le problème c'est le générateur, comme je te l'ai dit dans mon précédent post et dans celui encore avant.

Or d'après ta ligne de commande tu ne choisis pas de générateur. Donc là on a déjà un souci ; choisis le générateur que tu veux (cf. mon premier message : soit "NMake Makefiles" en ayant appelé vcvars64.bat, soit "Visual Studio 2013 x64") et ensuite on pourra continuer à discuter si tu as toujours le même problème.
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #6 le: Octobre 24, 2013, 03:19:07 pm »
Alors, ça a l'air d'avoir compilé.
Mais j'ai l'erreur suivante a la compilation de mon projet:
Erreur 1 error LNK2001: symbole externe non résolu __imp_glPointSize
J'ai bien rajouté ceci dans dépendance supplémentaires:
openal32.lib
sfml-graphics.lib
sfml-window.lib
sfml-system.lib
sfml-main.lib
glew.lib
freetype.lib
jpeg.lib
Et j'ai bien lié la SFML dans éditeur de lien en rajoutant le dossier Release au lien.
Aussi, j'ai crée un dossier x64 contenant les .lib et .dll des dépendances de la SFML, et je l'ai rajouté au lien.
Merci :)

EDIT: Voici les includes dont a besoin mon projet:
#include <SFML/Graphics.hpp>
#include <string>
#include <iostream>
#include <vector>
#include <Windows.h>
#include <GL/gl.h>

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #7 le: Octobre 24, 2013, 03:51:16 pm »
C'est la seule erreur que tu aies ? Tu utilises d'autres fonctions OpenGL dans ton code ?
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #8 le: Octobre 24, 2013, 03:52:23 pm »
Non, j'ai aussi:
Erreur 2 error LNK2001: symbole externe non résolu __imp_glLineWidthMais ça se limite a ça :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #9 le: Octobre 24, 2013, 04:11:28 pm »
Il te manque sûrement opengl32.lib dans ce cas. Et il y a une raison particulière pour que tu lies toutes les dépendances de SFML alors que tu lies celle-ci dynamiquement ?
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #10 le: Octobre 24, 2013, 04:37:36 pm »
Ah oui, effectivement, j'ai buggué.
C'est openal qui est dans le dossier.

Mais la SFML ne fourni pas opengl32.lib, il est fourni ailleurs?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #11 le: Octobre 24, 2013, 05:01:31 pm »
Il est fourni par ton compilateur.
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #12 le: Octobre 24, 2013, 05:32:48 pm »
OK, donc la SFML a compilé, et ma bibliothèque a aussi compilé, ça m'as donné sp.dll

Sauf que voilà, après dans un projet de test de la bibliothèque (composé uniquement d'un main.cpp)
J'ai cette erreur:
Erreur 1 error LNK2001: symbole externe non résolu "public: class sf::Vector2<float> & __cdecl sp::Animation::movement(void)" (?movement@Animation@sp@@QEAAAEAV?$Vector2@M@sf@@XZ)J'ai pourtant indiqué dans les répertoires ou sont les bibliothèques, le nom du répertoire contenant sp.dll

Est ce qu'il faut faire comme pour GCC, et lui dire -lnomdelalib quelque part?
Merci :)

EDIT: Même en générant sp.lib et en l'ajoutant aux dépendances, j'ai la même erreur :o
« Modifié: Octobre 24, 2013, 05:35:42 pm par Crone123 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #13 le: Octobre 24, 2013, 09:03:51 pm »
Tu as bien utilisé les directives d'export ?
Laurent Gomila - SFML developer

Crone123

  • Full Member
  • ***
  • Messages: 141
    • Voir le profil
Re : Compiler la SFML 2.1 pour Visual Studio 2013 en 64bits
« Réponse #14 le: Octobre 24, 2013, 10:33:02 pm »
Euh, je crois qu'avant dans QtCreator y en avait (dans mon ancienne lib), mais ici je crois pas.
Mais j'avais un truc de Qt tout fait pour ça, je dois mettre quoi pour que ça marche dans Visual?

(Sous Linux, la lib se compile et fonctionne, aussi bien en .a qu'en .so)

Je dois mettre quoi exactement?
Merci :)