Je voudrais compiler des fichiers dans les étapes suivantes à l'aide SCons:Comment compiler en deux étapes en utilisant SCons?
.c -> .asm (fichier de montage) -> .o
J'ai essayé de définir différents constructeurs pour cela.
j'ai réussi à faire quelque chose comme: .asm -> .o et .c -> .o
Je ne sais pas comment faire SCons au courant des .ASM générés à partir de fichiers .c puis utiliser le générateur d'objets.
Est-il possible d'utiliser l'implémentation SCons actuelle pour cela?
EDIT: C'est ce que j'ai essayé:
-> Pour définir deux constructeurs: 1 Builder (c_to_asm) est destiné à faire .c -> .asm étape Builder 2 (asm_to_o) est destiné à fais .asm -> .o. Après que ces deux constructeurs soient exécutés pour tous les fichiers définis dans mon SConscript, je m'attends à ce que le programme Builder crée l'exécutable final.
SCons.Tool.createProgBuilder(env)
c_to_asm = SCons.Builder.Builder(action = {},
emitter = {},
prefix = '',
suffix = '.asm',
src_builder = '',
source_scanner = '',
single_source = 1)
c_to_asm_action = SCons.Action.Action('c to asm command line', 'Executing .c to .asm builder')
c_to_asm.add_action('.c', c_to_asm_action)
asm_to_o = SCons.Builder.Builder(action = {},
emitter = {},
prefix = '',
suffix = '.o',
src_builder = ['CTOASM'],
source_scanner = '',
single_source = 1)
asm_to_o_action = SCons.Action.Action('asm to o command line', 'Executing .asm to .o builder...')
asm_to_o.add_action('.asm', asm_to_o_action)
env['BUILDERS']['CTOASM'] = c_to_asm
env['BUILDERS']['Object'] = asm_to_o
Je vois la chaîne d'exécution pour chaque générateur mais aucune commande n'est exécutée.
Je ne sais pas comment établir dans quel ordre ces générateurs exécutent des actions et comment déclencher ces générateurs.
S'il vous plaît donner un peu plus d'informations sur ce que vous avez exactement essayé jusqu'à présent. À quoi ressemblent vos constructeurs et comment les initialisez-vous et les appelez-vous? Quel est exactement le message d'erreur que vous obtenez ou sur quel problème de détail travaillez-vous en ce moment? (Par exemple: vos fichiers sont-ils compilés, mais les dépendances ne sont pas correctes, de sorte que la séquence "propre" laisse les fichiers derrière?) – dirkbaechle