[4.20][linux][résolue] impossible de compiler 1k+ lignes

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

[4.20][linux][résolue] impossible de compiler 1k+ lignes

Message par cha0s »

j'ai un bug etrange sous linux lorsque je compile cela se bloque a la ligne 1000. La fenêtre ou sont affiché les fichiers inclue ne bouge plus et mon CPU est totalement au repos.

Si un utilisateur linux pouvais confirmer se phénomène.

NOTE : le code a été développé sous linux et compile parfaitement sous windows.

Edit : en mode console
chaos@chaos:/media/disk/yame/sources/Melchior$ pbcompiler Main.pb

******************************************
PureBasic 4.20 (Linux - x86)
******************************************

Loading external modules...
Starting compilation...
Including source: ClassPath.pbi
Including source: debug.pb
Including source: POO_macro.pb
Including source: constantes.pb
Including source: Constantes Magi.pbi
Including source: Sprite.pb
Including source: Fonctions XOR.pbi
Including source: Nexus.class.pb
Including source: Atlas.class.pb
Including source: Chaos.class.pb
Including source: variable.class.pb
Including source: fonction.class.pb
Including source: script.class.pb
Including source: Adonis.class.pb
Including source: window.pb
Including source: gadget.pb
Including source: event.pb
Erreur de segmentation
Dernière modification par cha0s le lun. 21/juil./2008 6:18, modifié 2 fois.
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

1000lignes , c'est pas la limite de la version d'essai de pb ?

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

Message par cha0s »

j'ai retélechargé la version 4.2 avant de créer le poste et les apis et création de dll ne semble pas poser de probleme donc il s'agit bien de la bonne version, la je voie pas trop d'ou peut provenir l'erreur.
Anonyme

Message par Anonyme »

Envois tes sources. moi, + de 1000 lignes pose pas de soucis :?
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

je pense que sa vient des fichiers inclue un peu partout car 2000ligne dans un fichier sa compile. je clean un peu les source et je t'envoie sa.
Neosis
Messages : 113
Inscription : dim. 24/févr./2008 20:11

Message par Neosis »

Patrick88 a écrit :1000lignes , c'est pas la limite de la version d'essai de pb ?

pat

Euh ... je suis pas sur mais il me semble que la limite sur la version d'essai est de 500 lignes :P
Anonyme

Message par Anonyme »

je viens de jeté un oeil & voici mes remarques :D

- PureBasic n'est pas OO , codé en OO via des macros rends le code difficile à lire. surtout pour maintenir le projet dans qq moi ou années.

- Utilise XInclude au lieu d'include , c'est un peut comme la directive #ifndef #define #endif en c++ , ca évite d'inclure 2x le même fichiers.

- IncludePath m'a déjà causé des problèmes , fonctions obscure pour moi , je préfère faire :
XincludeFile "../../math.pb"
ou
XIncludeFile "datas/gfx/Loader.pb"

d'ailleurs ton problème viens certaiment de là...

- Sous Windows il me semble que le "/" fonctionne aussi pour les chemins
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

c'est tout de même assez étrange que sa plante depuis la version 4.2.


Pour le code version POO je trouve que sa simplifie énormément la syntaxe, j'ai commencé un petit pré compilateur pour me rapprocher un peu de la syntaxe java.

Je trouve que le mix procédurale/POO est assez agréable a utiliser.
Anonyme

Message par Anonyme »

En ce qui concerne un interpreteur poo ( utilisable sous linux )
regarde ceci :http://www.purebasic.fr/french/viewtopi ... hlight=poo

Je trouve que le mix procédurale/POO est assez agréable a utiliser.
Autant faire du c++ :wink:
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Cpl.Bator a écrit :En ce qui concerne un interpreteur poo ( utilisable sous linux )
regarde ceci :http://www.purebasic.fr/french/viewtopi ... hlight=poo

Je trouve que le mix procédurale/POO est assez agréable a utiliser.
Autant faire du c++ :wink:
je vait jeter un coup d'oeil a ton interpreteur sa a l'air sympa.

Sinon faire du c++ j'ai déjà pensé a porter le projet mais en terme de simplicité que se soit a la compilation ou au codage on perd grandement. Je fait peut être de la POO mais je ne veut pas abandonner cette syntaxe basic.
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

j'ai changé totalement le style de l'inclusion mais rien ne change erreur de segmentation a la ligne 1000

Code : Tout sélectionner

XIncludeFile "../ClassPath.pbi"
XIncludeFile "../include/debug.pb"
StartDebug()
write("Start Melchior")
XIncludeFile "../include/POO_macro.pb"
XIncludeFile "../include/constantes.pb"

;{-Moteur 3D
; 	IncludePath "../Engine3D/Wrapping/Purebasic"
; 	IncludeFile "OpenGL.pbi"
; 	IncludeFile "gears3d.pbi"
;}

XIncludeFile "include/Constantes Magi.pbi"
XIncludeFile "include/Sprite.pb"
XIncludeFile "include/Fonctions XOR.pbi"

;{-Structures & variables
	Global StartServeurIp.s
	Global StartServeurPort.s
	Global Dim Language.s(#Language)
	Restore BaseLanguage
	For k=0 To #Language
	  Read Language(k)
	Next
;}
;{-Class&Thread
	;{Class
		XIncludeFile "Class/Nexus.class.pb"
		xIncludeFile "Class/variable.class.pb"
		xIncludeFile "Class/fonction.class.pb"
		xIncludeFile "Class/script.class.pb"
		XIncludeFile "Class/Chaos.class.pb"
		XIncludeFile "Class/Adonis/gadget.pb"
		XIncludeFile "Class/Adonis/window.pb"
		XIncludeFile "Class/Adonis/event.pb"
		XIncludeFile "Class/Adonis/Adonis.class.pb"
		XIncludeFile "Class/Dionysos.class.pb"
		XIncludeFile "Class/Atlas.class.pb"
	;}
	;{Thread
		XIncludeFile "thread/event.pb"
		XIncludeFile "thread/startServeur.pb"
	;}
;}
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Apparemment tu as des datas. Vérifie bien tes DataSection et EndDataSection.
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

Message par cha0s »

Bon Apres avoir changé un peu ma manière de coder j'ai enfin réussi a compiler sous linux. Il semblerais que sur certain gros fichier le compilateur nux ne supporte pas trop les macros. Par contre maintenant c'est le mode safe thread qui m'en veut :p.

Code : Tout sélectionner

pbcompiler Main.pb -e ../../binaries/Melchior/Melchior --thread
******************************************
PureBasic 4.20 (Linux - x86)
******************************************

Loading external modules...
Starting compilation...
Including source: ../ClassPath.pbi
Including source: ../include/debug.pb
Including source: ../include/POO_macro.pb
Including source: ../include/constantes.pb
Including source: include/Constantes Magi.pbi
Including source: include/Sprite.pb
Including source: include/Fonctions XOR.pbi
Including source: include/Input.pb
Including source: Class/Nexus.class.pb
Including source: Class/variable.class.pb
Including source: Class/fonction.class.pb
Including source: Class/script.class.pb
Including source: Class/Chaos.class.pb
Including source: Class/Adonis/gadget.pb
Including source: Class/Adonis/string.pb
Including source: Class/Adonis/image.pb
Including source: Class/Adonis/button.pb
Including source: Class/Adonis/window.pb
Including source: Class/Adonis/event.pb
Including source: Class/Adonis/Adonis.class.pb
Including source: ../Class/Amphore.class.pb
Including source: Class/Dionysos.class.pb
Including source: Class/Atlas.class.pb
Including source: thread/event.pb
Including source: thread/startServeur.pb
2535 lines processed.
Creating the executable.
Error: Linker
2DDrawing.a(2DDrawing_THREAD.o):(.bss+0x0): multiple definition of `PB_2DDrawing_Mode'
2DDrawing.a(2DDrawing.o):(.bss+0x0): first defined here 
Répondre