1

Voilà, si je me souviens bien l'IDE de TIGCC est faite en Delphi. Or elle est capable, apparement sans aucun problème, de lancer gcc.exe avec tous ces arguments.

J'ai essayé de plusieurs manière, mais mes tentatives restent vaines : dès qu'il y a un peu trop d'arguments, Delphi refuse d'executer la commande.
J'ai essayé en QBasic, avec la commande SHELL, mais il y a exactement le même problème.

Quel est le secret de TIGCC ? Qu'utilise-t-il pour lancer gcc avec tous ses arguments ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2

-

3

A vrai dire j'attendais plutot une réponse constructive d'un membre de la TIGCC (on se demande qui grin) plutot que ce genre de posts, mais bon... grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

Pourquoi ne regardes-tu pas les sources? Elles sont données!

procedure Execute(const CommandLine: string);
var
	TempStr: array [0..255] of Char;
	WriteResult: Cardinal;
	StartupInfo: TStartupInfo;
	ProcessInfo: TProcessInformation;
begin
	if FileExists (Copy (CommandLine, 1, Pos (' ', CommandLine))) then begin
		if Verbose then begin
			StrPLCopy (TempStr, CommandLine + #13#10, 255);
			WriteFile (GetStdHandle (Std_Output_Handle), TempStr, Length (CommandLine) + 2, WriteResult, nil);
		end;
		FillChar (StartupInfo, SizeOf (StartupInfo), 0);
		with StartupInfo do begin
			cb := SizeOf (StartupInfo);
			lpTitle := PChar ('TIGCC');
		end;
		if CreateProcess (nil, PChar (CommandLine), nil, nil, True, 0, nil, nil, StartupInfo, ProcessInfo) then begin
			WaitForSingleObject (ProcessInfo.hProcess, Infinite);
			GetExitCodeProcess (ProcessInfo.hProcess, WriteResult);
			CloseHandle (ProcessInfo.hProcess);
			CloseHandle (ProcessInfo.hThread);
			if WriteResult <> 0 then
				Fatal;
		end else
			Fatal (SRunFailed);
	end else
		Fatal (Format (SProgNotFound, [Copy (CommandLine, 1, Pos (' ', CommandLine))]));
end;

C'est ce que fait tigcc.exe. IDE.exe est un peu plus compliqué, parce qu'il redirige aussi stdout et stderr pour afficher les messages d'erreur dans l'interface graphique. Cf. ProcessUnit.pas.

Et je te signale que ce code est en principe sous GPL.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

5

Kevin Kofler
a écrit : Pourquoi ne regardes-tu pas les sources? Elles sont données!

J'ai essayé, mais les sources de TIGCC sont monstrueusement grosses et donc repoussantes, surtout pour un débutant en Delphi comme moi sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

[mec chiant2] batch powaaa aussi wink [/mec chiant2]
avatar

7

t'ain, je me perd dans de ces forums moi ... smile

8

Tiens d'ailleurs j'ai essayé de compiler l'IDE de TIGCC avec Delphi, et j'ai pas mal d'erreurs, surtout parce que des fichiers sont dans le dossier component et pas dans l'IDE, mais même en les déplaçant ça marche pas. J'ai Delphi 7.
avatar
;)

9

Sebastian utilise Delphi 4, pas Delphi 7.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

-

11

Remontage de vieux topic pour l'occasion.

En fait je cherchais, j'ai arrêté de chercher et je recommencer à chercher aujourd'hui à faire un Frontend pour compiler facilement sur GBA (les autres, je sais pas comment vous vous y prenez mais avec tous ces trucs sous dos je patauge sad)

Etant donné que les commandes Delphi pour lancer un programme DOS ont l'air plus que limitées (si la commande est trop longue ça passe pas), je crée un fichier .bat qui contient toutes les instructions et je le lance lui.
Le problème est que même si il est capable de lancer séparement as, gcc, etc... en leur spécifiant le chemin complet vers tous les dossier nécessaires, il reste un bug :
gcc m'affiche qu'il n'arrive pas à trouver as.exe.

Comment on peut remédier à ça ? (et surtout, comment fait TIGCC pour en plus savoir quand la compilation est terminée ???)

Edit : Autre problème, j'ai telechargé GCC je ne sais plus ou, et j'ai des TONNES de fichiers avec, il y en a pour 48Mo au total et je sais pas ce que je peux virer ou non grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

12

-

13

[mec chiant 3]batch poWaaaa grin[/mec chiant 3]
warau kado niha fuku kitaru.

#trifouet#!!!

14

Orion_ > Pas con le coup du .dat... Ce matin j'ai cherché avec des "until Application.Terminated" ou encore "While (Exitcode <> fini)" (sauf que fini c'est un mot clé bien précis j'ai la flemme d'aller voir grin), mais apparement ça marche que pour des programmes Windows.

Merci donc smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

15

-

16

Bah ué mais bon ça aurait du marcher quand même grin

Il me reste donc un problème, plus un nouveau qui est apparu entre temps, ça fait donc à peu près deux sad

- Comment récupérer les erreurs & warnings que donne GCC ? (bon j'avoue je n'ai pas lu la doc, d'ailleurs je vais le faire)
- Quand je compile, j'ai un message d'erreur : "Virtual memory exhausted: Invalid argument". Or même en lançant "gcc main.c -o main.o" j'ai l'erreur, donc je doute que ce soit réellement un "Invalid argument" sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

17

-

18

Orion_ a écrit :
pour recuperer les msg de gcc (ou de n'importe kel prog DOS normalement constitué) utilise dans un fichier batch: prog argument > fichier.txt et la sortie sera redigiré vers fichier.txt

J'ai essayé déjà, mais ça ne marche pas.

Enfin pour l'instant la priorité est le problème qui m'empeche de compiler sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

19

[mec chiant 2 le retour]batch + makefile powaaa![/mec chiant 2 le retour]
avatar

20

Putain 1 fois ça va, 2 fois ça commence à être lourd 3 vous saoulez carément rage

Allez poster vos conneries ailleurs je suis completement bloqué avec cette erreur moi sad
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

21

Tu ne peux pas rediriger la sortie vers un fichier en utilisant un fichier .bat vu qu'elle est sur stderr. Si tu veux la capturer, il faudra utiliser les fonctions Win32 comme le fait TIGCC IDE. Lis les sources, je n'ai pas envie de les poster ici. C'est dans le fichier ProcessUnit.pas.

Et je pense qu'au lieu de tout coder "from scratch", tu devrais adapter TIGCC IDE, Sebastian a presque tout fait pour toi et sous GPL. Ou alors tu adaptes Dev-C++, c'est aussi du Delphi et aussi sous GPL.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

Oui je sais que TIGCC s'adapte mais je ne fais pas une IDE, juste un petit gestionnaire de projets, qui n'a plus qu'un seul problème avant de fonctionner : cette histoire de "Virtual memory exhausted: Invalid argument" sad

Sinon ok pour récupérer les arguments je vais d/l les sources de TIGCC
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)