Je veux appeler Rust à partir de GnuCOBOL. J'ai copié le code du premier exemple dans GnuCOBOL peut-il interagir avec Rust? de la FAQ de GNUCobol de Brian Tiffin comme test, mais j'ai une erreur lors de son exécution.
Attendu:
$ make -B
rustc --crate-type=dylib called.rs
LD_RUN_PATH=. cobc -xj caller.cob -L. -lcalled
:Hello, world:
Réel :
$ make -B
rustc --crate-type=dylib called.rs
LD_RUN_PATH=. cobc -xj caller.cob -L. -lcalled
libcob: error: module 'hello_rust' non trouvé
make: *** [makefile:5: caller] Erreur 1
J'obtiens la même erreur après avoir compilé les deux fichiers à partir de la ligne de commande, puis en utilisant $ ./caller
.
La syntaxe semble correcte d'après la page man de cobc
et les sections de liaison du manuel de GnuCOBOL et du référence Rust. J'ai essayé $ ./caller COB_LIBRARY_PATH=.
comme décrit dans le manuel de GnuCOBOL, mais cela ne fait aucune différence. La source Rust se compile en bibliothèque comme prévu, mais le COBOL ne la trouve pas.
En utilisant $ cobcrun caller
à la place affiche libcob: error: module 'caller' non trouvé
.
Cette question sur une erreur similaire concerne la liaison statique de plusieurs fichiers source COBOL, ce qui fonctionne bien, et cette question sur une erreur similaire semble être un problème avec X"AF"
, qui n'est pas utilisé ici. La liaison statique de sources C avec l'exemple de l'Enveloppe C de Jay Moseley pour Appeler une Fonction de Bibliothèque fonctionne comme prévu. La liaison statique de sources Rust n'est pas prise en charge.
Versions du logiciel:
- Ubuntu 22.04.1 LTS
- cobc (GnuCOBOL) 3.1.2.0
- rustc 1.64.0