comment faire un executable linux

Codes specifiques à Linux
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

comment faire un executable linux

Message par lapenduledargent »

Bonjour à tous,

Voilà, je découvre PureBasic sous linux, et j'ai une question concernant les exécutables:

1/je fais une application toute simple qui lance une console.
2/ je la lance avec F5, ok pas de Pb.
3/ dans le menu complilateur, je clique sur créer un exécutable
4/ je choisi un dossier rapidement une fenêtre apparait et disparait
5/ un fichier a bien été créé dans le répertoire

Comment le lancer ?
J'ai essayé en cliquant dessus, mais rien :(
J'ai ouvert une console et tapé le nom du fichier mais ça va toujours pas

Comment faite vous ?

Merci et bonne journée

Pierre
Anonyme

Message par Anonyme »

Quel type d'application ? console ? avec une interface évolué (GUI) ?
Ton exécutable à t'il les autorisation nécessaire pour s'exécuter ?

Met ton code ici entre les balise

Code : Tout sélectionner

 [/code ]
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

Message par lapenduledargent »

Bonjour Cpl.Bator,

Et bien voilà mon code et merci de m'aider :

Code : Tout sélectionner

OpenConsole() 
#port = 0
fd = 0

fd = ReadFile(#port,"/dev/")
If fd
Print( "ok marche")
 
 Delay(5000)

Else
OpenConsole() 
Print("marche pas")
Delay(5000)
EndIf
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

déjà inutile d'ouvrir la console deux fois ^^'

Code : Tout sélectionner

OpenConsole()
#port = 0
fd = 0

fd = ReadFile(#port,"/dev/")
If fd
Print( "ok marche")
 
 Delay(5000)

Else
Print("marche pas")
Delay(5000)
EndIf 
ensuite une fois dans le terminal pas de problème

chaos@chaos:~$ cd Bureau/
chaos@chaos:~/Bureau$ ./test
ok marche
PS : tu utilise quelle distribution ?
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

RESOLU

Message par lapenduledargent »

Bonsoir Chaos,

Ok, ça marche :D

Je ne savais pas que je devais utiliser ./ avant le nom du fichier :wink:

Merci et bonne soirée

Pierre
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

lapenduledargent a écrit :Bonjour Cpl.Bator,

Et bien voilà mon code et merci de m'aider :

Code : Tout sélectionner

OpenConsole() 
#port = 0
fd = 0

fd = ReadFile(#port,"/dev/")
If fd
Print( "ok marche")
 
 Delay(5000)

Else
OpenConsole() 
Print("marche pas")
Delay(5000)
EndIf
Bonsoir pierre,

j'en reviens sur ton code et sur ton soucis d'ouverture via openfile, j'ai testé ce code, que dit-il chez toi ?

Code : Tout sélectionner

#file_dev = 99
fd.i = 0

OpenConsole()
fd = OpenFile(#file_dev,"/dev/dsp")

If fd
  PrintN("Lecture fichier dsp OK")
  CloseFile(#file_dev)
EndIf

Print("Hit a key !"):Input()

CloseConsole()
Attention, dans ton code, tu fais readfile d'un répertoire ... :wink:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

flaith a écrit :Attention, dans ton code, tu fais readfile d'un répertoire ... :wink:
Tiens, ça me dit quelque chose, on ne peut pas faire un readfile d'un répertoire sous Linux? Puisque les répertoires sont des sortes de fichiers...? J'avais lu ça quelque part, mais je me trompe peut-être :)
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

djes a écrit :
flaith a écrit :Attention, dans ton code, tu fais readfile d'un répertoire ... :wink:
Tiens, ça me dit quelque chose, on ne peut pas faire un readfile d'un répertoire sous Linux? Puisque les répertoires sont des sortes de fichiers...? J'avais lu ça quelque part, mais je me trompe peut-être :)
:D c'est bien vrai, mais je me suis mal expliqué en fait, puisqu'à la base la demande était d'ouvrir le port parallèle pour lire et écrire, il faut donc utiliser OpenFile, Readfile étant uniquement destiné qu'à lire les données et non les écrire d'ou la possibilité d'ouvrir le répertoire.

Bref tu as bien fait d'apporter ce détail :wink:
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

Message par lapenduledargent »

Bonjour et merci à tous pour votre aide précieuse.

A peine inscrit sur le forum et déjà beaucoup d'aide :D
Ca fait plaisir lorsque l'on démarrage dans un projet de programmation.
:wink:
Je me débrouille en php mais à présent, je souhaite commander le port // comme expliqué dans ce post
http://www.purebasic.fr/french/viewtopi ... 4977#94977

Merci flaith pour ton code, il fonctionne et j'ai ajouté ça après le IF :

Else

PrintN("Lecture impossible")

Alors avec ReadFile, pas de Pb mais avec OpenFile, j'ai une erreur.
C'est normal puisque je ne suis pas le propriétaire du fichier.
Le propriétaire est ROOT et le groupe est kmem
Qui est ce kmem sous ubuntu ?

En C, j'ai lu qu'il existe des possibilités de modifier momentanément les droit d'un fichier.

Sur mon autre poste, Chaos, me propose ça :
sous debian tu peut lancer ton application avec la commande "su monappli.out" ou "sudo monappli.out" sous ubuntu.
Ca à pas l'air de fonctionner que me proposez-vous SVP.

Merci et bonne journée

Pierre
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

.out n'est pas une commande c'est juste que sous windows on utilise .exe pour les exécutables et sous linux il fut un temps ou il était d'usage de mettre .out d'ailleurs le compilateur de PB sort un fichier .out l'osque l'on ne spécifie pas de nom d'exécutable.

donc tu doit faire

Code : Tout sélectionner

sudo ./tonexecutable
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

lapenduledargent a écrit :...
Alors avec ReadFile, pas de Pb mais avec OpenFile, j'ai une erreur.
C'est normal puisque je ne suis pas le propriétaire du fichier.
Le propriétaire est ROOT et le groupe est kmem
quand je fais le test avec '/dev/dsp' c'est en root:audio chez moi, tu dois sûrement faire parti du groupe audio, ca a donné quoi lors du lancement du programme ? Sinon ajoute le groupe 'audio' a ton utilisateur
lapenduledargent a écrit :Qui est ce kmem sous ubuntu ?

Code : Tout sélectionner

flaith@sangha:~$ man kmem
lapenduledargent a écrit :En C, j'ai lu qu'il existe des possibilités de modifier momentanément les droit d'un fichier.
...
j'ai fait ca pour Linux, c'est les mêmes accès mais bas niveaux http://www.purebasic.fr/french/viewtopic.php?t=9109, ca donne quelque chose chez toi ?
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

Message par lapenduledargent »

Bonjour,

Concernant le code de Chaos, ça fonctionne. Je peux donc lancer mon appli en root.

:D

Je viens de tester le code de Flaith :

J'ai donc fait 2 fichiers :

- io_linux.pbi
- test_io.pb

Mais j'ai une erreur, File not found ? à la ligne XIncludeFile "io_linux.pbi"

Je débute en purebasic et je comprends pas, le fichier à inclure est pourtant dans le même répertoire?

A bientôt

Pierre
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

attention sous linux "io_linux.pbi" et "Io_linux.pbi" sont deux fichier différent, vérifie bien la case.
lapenduledargent
Messages : 12
Inscription : dim. 15/mars/2009 11:07

Message par lapenduledargent »

Bonsoir,

Non, c'est pas ça ?
Je vais compiler et essayer en root
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

8O bizarre cette histoire, voici un 'ls' de mon repertoire, tu as quoi comme info par rapport à la ligne 'io_linux.pbi' et la ligne 'test_io.pb' un peu plus bas ?
Image
Répondre