A votre avis, pourquoi est-il nécessaire de compiler un programme CL ? Tout simplement parce que CL supporte des variables. Sous le capot, chaque variable est en réalité une référence à une zone de mémoire différente où l’ordinateur stocke toute son information. Dans un programme CL, la commande doit
Pourquoi ne pouvez-vous pas spécifier LIB/OBJ dans une variable ?
être interprétée d’après les variables qui se trouvent dans toutes ces zones de mémoire différentes, au lieu d’analyser syntaxiquement une chaîne de commandes toutes tapées ensemble dans un endroit. Le code compilé fait très bien cela. Et les programmes CL sont alors un peu plus rapides que si l’on faisait la même chose à l’invite de commande.
Quand vous songez aux variables que vous devez passer à une commande telle que RUNQRY, vous devez vous demander : qu’est-ce que le compilateur CL attend de ma part ? Si vous codez une variable pour le paramètre OUTFILE(), le compilateur s’attend à ce que ce paramètre soit le nom de l’objet. Vous ne pouvez pas simplement lui ajouter une bibliothèque et espérer qu’il sait cela : en l’occurence, la bibliothèque fait partie de cette variable. La seule chose que le compilateur CL sait est que la première variable que vous passez est le nom d’objet. Quel que soit le contenu de cette variable, il est copié dans le paramètre nom d’objet du CPP pour cette commande. Pour qu’une partie des données soit passée au paramètre bibliothèque du CPP, le compilateur CL attend de vous que vous spécifiiez une variable séparée.
Vous devez donc faire ce qu’il attend. Cependant, il y a quelques possibilités de contournement. Tout d’abord, vous pouvez, par programme, diviser le paramètre en deux variables séparées et les passer. Pour cela, recherchez par balayage le caractère « / ». S’il existe, mettez tout ce qui se trouve à sa gauche dans une variable et tout ce qui se trouve à sa droite dans une seconde variable. Passez ces deux variables comme le nom de bibliothèque et d’objet. Le programme de la figure 1 démontre cette technique. Deuxièmement, au lieu de vous battre avec le compilateur CL, créez manuellement la chaîne de commandes en copiant les valeurs des variables. Vous pouvez créer une chaîne de commandes dans une instruction CHGVAR, y concaténer les variables puis l’exécuter avec QCMDEXC. QCMDEXC analysera la chaîne de commandes au moment de l’exécution, exactement comme elle le fait quand vous la tapez sur la ligne de commande. Le programme de la figure 2 démontre cette technique.
Par Scott Klement
Téléchargez cette ressource
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cybersécurité : les entreprises françaises réclament un durcissement inédit de la réglementation
- Le tournant Mythos : les entreprises devront opposer des agents IA à des agents IA
- Analyse Patch Tuesday Juillet 2026
- Au-delà du polling: pourquoi la surveillance des systèmes hérités devient un risque pour l’entreprise
Articles les + lus
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
