2017-04-05 4 views
0

J'essaie de suivre un tutoriel en utilisant la bibliothèque SDL2. J'ai suivi les instructions here verbatim.C++ exécutable s'exécute à partir de la ligne de commande, mais pas à partir d'une éclipse

Le programme compile très bien, mais lorsque je tente de l'exécuter dans Eclipse je reçois l'erreur suivante lorsque vous appelez SDL_Init(SDL_INIT_VIDEO):

No available video device

Après quelques recherches, j'ai décidé c'était parce que SDL2 n'a pas été correctement liés à tous les pilotes d'affichage ainsi gaspillé plusieurs heures à l'installer à partir de la source, et en essayant diverses corrections suggérées sur divers forums. Après avoir suivi un autre tutoriel, j'ai trouvé qu'il n'y avait rien de mal avec mon installation SDL2. Et en fait, lorsque j'exécute l'exécutable créé par le projet eclipse à partir du terminal, il fonctionne sans aucun problème.

Il existe des questions similaires (par exemple here), mais je ne peux pas trouver un où l'erreur se produit à partir de l'éclipse, mais pas le terminal.

Tous les pointeurs seraient grandement appréciés. Je soupçonne que cela peut être dû à une variable d'environnement qui n'est pas définie, mais je ne sais pas qui ou pourquoi. Basé sur les réponses sur SO j'ai ajouté la variable d'environnement DISPLAY et le mettre à :0 dans la configuration du projet mais sans succès.

Mise à jour: J'ai trouvé un moyen d'ajouter rapidement toutes mes variables d'environnement bash à mon projet eclipse et j'ai toujours l'erreur No available video device.

Mise à jour 2: Il s'avère que je n'ajoutais pas les variables d'environnement au bon endroit (je les ajoutais à l'environnement de construction C++, pas à l'environnement Exécution).). Réponse affichée ci-dessous

+1

L'environnement (par exemple PATH, LIBRARY_PATH et/ou d'autres) est probablement différent de lorsque vous exécutez à partir du terminal par rapport à lorsque vous exécutez à partir de l'IDE. Assurez-vous de définir correctement les variables d'environnement lors de l'exécution à partir de l'EDI. –

+0

Un grand merci pour la réponse. J'ai trouvé un moyen rapide d'ajouter toutes mes variables d'environnement à mon projet eclipse, et cela n'a pas semblé le réparer, donc je ne suis pas sûr qu'il s'agisse de variables d'environnement. Est-ce que l'éclipse pourrait rendre l'appareil vidéo indisponible pour SDL2? – kabdulla

Répondre

1

Il s'est avéré que c'était un problème de variable d'environnement. Pour résoudre ce problème, vous devez ajouter la variable d'environnement DISPLAY à votre projet et la définir sur :0.0.

Pour ce faire, faites un clic droit sur votre projet, puis sélectionnez Exécuter en tant que >> Exécuter ... Configurations

Sélectionnez ensuite votre application dans le panneau de gauche. Sélectionnez l'onglet Environnement sur la droite. Cliquez sur Nouveau ..., puis entrez DISPLAY dans le champ Nom: et :0.0 dans le champ Valeur:.

Cliquez sur Appliquer, puis sur Exécuter, et cela devrait fonctionner. Merci à @Anon Mail pour m'avoir indiqué les variables d'environnement.