Je suis nouveau à OCaml, mais j'essaye de comprendre l'équivalent de __filename
, __dirname
du noeud. C'est-à-dire, j'ai besoin de construire un chemin relatif au fichier contenant le code en question.OCaml: Comment puis-je obtenir le chemin vers le répertoire * module actuel */mon projet?
Pour référence, je travaille dans la CCIA de Ghuloum: http://ell.io/tt$ocameel
Je construis mon premier compilateur, et j'ai un fichier « exécution » tout à fait simpliste (en C - temporarily) à côté de le code source du compilateur. Je dois pouvoir passer le chemin de ce fichier, en tant qu'argument (ou une version pré-compilée, je suppose) à gcc
ou à mon éditeur de liens, pour qu'il soit lié à la sortie de mon compilateur quand j'appelle l'outil éditeur de liens/assembleur.
(Cela peut être une question stupide - je suis un peu d'un inconnu ici-inconnu, « comment un compilateur obtenir le temps d'exécution - l'éditeur de liens », ou quelque chose comme ça des commentaires sur les solutions Tout idiomatiques. c'est le bienvenu, même si ce n'est pas une réponse directe à la question ci-dessus!)
Oui, c'est ce dont j'ai commencé à m'inquiéter, à mi-chemin de ma question. Je suppose que je dois comprendre comment les rédacteurs de compilateurs vont envoyer des ressources supplémentaires à leurs utilisateurs. Je suppose que je devrais avoir à aligner le texte (ou l'objet à lier?) Dans le binaire? : x Merci néanmoins, c'est une bonne réponse pour les situations de script! – ELLIOTTCABLE
@ELLIOTTCABLE Si votre projet est présenté comme décrit dans mon dernier paragraphe, il devrait simplement fonctionner avec 'argv. (0)'. Si vous avez besoin de ressources supplémentaires, vous pouvez les mettre en partage/et faire la même chose. Notez que si votre fichier stdlib est lié dynamiquement et que vous ne l'installez pas sur un chemin standard, vous devrez également définir LD_LIBRARY_PATH pour trouver le fichier .so lors de l'exécution du fichier binaire compilé, mais c'est un problème sans rapport. – sepp2k