Re: [m-users.] [Beginner] Using a functions from 'libs'
Razetime <[email protected]>
| Newsgroups | gmane.comp.lang.mercury.general |
|---|---|
| Message-ID | <CAMtxHUvUSEnfL0a8bF1ur_Mf__FvYmPTaVpAeNYEivAP6H4=Zg@mail.gmail.com> |
My bad. What is the problem here? Is it a problem with https://github.com/Mercury-Language/mercury/blob/master/compiler/md5.m ? Making Mercury/int3s/a05.int3 Making Mercury/ints/a05.int Making Mercury/cs/a05.c Making Mercury/cs/md5.c Making Mercury/os/a05.o Making Mercury/os/md5.o Making a05 Making md5 ** Error making `md5'. Mercury/os/md5_init.o:md5_init.c:function mercury_init: error: undefined reference to '<predicate 'main'/2 mode 0>' collect2: error: ld returned 1 exit status On 10/16/22, Volker Wysk <[email protected]> wrote: > You've mixed up the input and output arguments in the declaration of > main/2. > > Volker > > > Am Sonntag, dem 16.10.2022 um 16:06 +0530 schrieb Razetime: >> For this program I tried using mmc --make and i got the following error. >> >> :- module a05. >> >> :- interface. >> :- import_module io. >> :- pred main(io::uo,io::di) is det. >> >> :- implementation. >> :- import_module list. >> :- import_module md5. >> >> main(!IO):- >> S0=md5sum("abc3231929"), >> print_line(S0,!IO) >> . >> >> >> $ mmc --make a05 md5 >> Making Mercury/int3s/a05.int3 >> Making Mercury/ints/a05.int >> Making Mercury/cs/a05.c >> a05.m:013: In clause for `main(uo, di)': >> a05.m:013: in argument 2 of call to predicate `io.print_line'/3: >> a05.m:013: unique-mode error: the called procedure would clobber its >> a05.m:013: argument, but variable `STATE_VARIABLE_IO_0' is still live. >> ** Error making `Mercury/cs/a05.c'. >> >> How do i make sure the variable is not live? >> >> On 10/16/22, Razetime <[email protected]> wrote: >> > Oh, makes sense. The md5.m file is not part of the distribution so i >> > have to compile it along with my program. Thanks. >> > >> > On 10/16/22, Julien Fischer <[email protected]> wrote: >> > > >> > > >> > > On Sun, 16 Oct 2022, Razetime wrote: >> > > >> > > > using the name md5 like follows: >> > > > :- module a05. >> > > > >> > > > :- interface. >> > > > :- import_module io. >> > > > :- pred main(io::uo,io::di) is det. >> > > > >> > > > :- implementation. >> > > > :- import_module list. >> > > > :- import_module md5. >> > > > >> > > > main(!IO):- >> > > > S0=md5sum("abc3231929"), >> > > > print_line(S0,!IO) >> > > > . >> > > > >> > > > gives me this error: >> > > > $ mmcb a05.m >> > > > ~ >> > > > │mercury_compile: >> > > > cannot find `Mercury/ints/md5.int' in directories ., >> > > > ~ >> > > > │ >> > > > /usr/lib/mercury/ints >> > > >> > > Using mmc directly like that is only for building single module >> > > programs. To build a program consisting of multiple modules, use >> > > the --make option, e.g. >> > > >> > > $ mmc --make a05 >> > > >> > > (See the "Using the Mercury compile" section of the Mercury users's >> > > guide for details.) >> > > >> > > Julien. >> > >> _______________________________________________ >> users mailing list >> [email protected] >> https://lists.mercurylang.org/listinfo/users > > _______________________________________________ users mailing list [email protected] https://lists.mercurylang.org/listinfo/users