micans / mcl

MCL, the Markov Cluster algorithm, also known as Markov Clustering, is a method and program for clustering weighted or simple networks, a.k.a. graphs.
https://micans.org/mcl
Other
89 stars 12 forks source link

Error: Multiple symbol definition error when including ... (mcl-21-257) #3

Closed piosierra closed 2 years ago

piosierra commented 2 years ago

While trying to compile mcl I run into several of these errors, starting with `nu_meet_can' and generating a long string of them. I am using gcc version 11.1.0.

micans commented 2 years ago
piosierra commented 2 years ago

Hello, thanks for the fast answer.

config.log

micans commented 2 years ago

Ah, configure was fine of course. I will need more information about the make step. Can you

.. assuming both those files get made.

piosierra commented 2 years ago

Sure. Here you are. mcl.log cff.log

micans commented 2 years ago

It looks as if things worked. What does $HOME/local/bin/mcl --version produce?

piosierra commented 2 years ago

mcl has not been generated (nor even the local folder) I receive the same errors as before, ending with: (sorry, spanish local) ... /usr/bin/ld: ../impala/libimpala.a(stream.o):(.bss+0x20): definiciones múltiples de nu_diff_sl'; clmformat.o:(.bss+0x20): primero se definió aquí /usr/bin/ld: ../impala/libimpala.a(stream.o):(.bss+0x28): definiciones múltiples denu_diff_zip'; clmformat.o:(.bss+0x28): primero se definió aquí /usr/bin/ld: ../impala/libimpala.a(stream.o):(.bss+0x30): definiciones múltiples de nu_magic'; clmformat.o:(.bss+0x30): primero se definió aquí /usr/bin/ld: ../impala/libimpala.a(stream.o):(.bss+0x38): definiciones múltiples demclx_n_thread_g'; clmformat.o:(.bss+0x38): primero se definió aquí collect2: error: ld devolvió el estado de salida 1 make[3]: [Makefile:429: clmformat] Error 1 make[2]: [Makefile:327: all-recursive] Error 1 make[1]: [Makefile:383: all-recursive] Error 1 make: [Makefile:324: all] Error 2

micans commented 2 years ago

Ah yes, ahem the script had some issues. Can you remove the directories mcl-21-257 and cimfomfa-21-257, redownload the script and re-run (the change in the script is to also save STDERR to the log file), and then re-upload the log files. I hope it is something simple, just can't see it yet.

piosierra commented 2 years ago

Thanks for your help. I have run it without errors now. But I just see in $HOME/local/bin cff_hashfile and cff_let Not sure if that is correct. I include the new log files.

mcl.log

cff.log

micans commented 2 years ago

cff_hashfile and cff_let were installed by cimfomfa, I will disable that in future releases. Can you do the procedure once more (with build-mcl-21-257-b.sh)? I have updated the build script by adding -fcommon to CFLAGS. If this solves it I'll need to clean up the code a bit, but it is nothing serious.

piosierra commented 2 years ago

Hello, I got all these now. So it looks fine, I guess.

cff_hashfile  clmformat  mclcm        mcxarray     mcxi     mcxrand
cff_let       clxdo      mclpipeline  mcxassemble  mcxload  mcxsubs
clm           mcl        mcx          mcxdump      mcxmap

Nevertheless here you have the logs.

mcl.log cff.log

micans commented 2 years ago

Hello piosierra, That fixed it and the log looks fine, so I'll close this issue. It's useful to me, I will compile the code with the option -fno-common and clean up the issues that you experienced. Thanks, Stijn

micans commented 2 years ago

The issue was that the variables in src/impala/iface.h needed an extern qualifier. A bit of a hindsigh ...

piosierra commented 2 years ago

Thanks a lot for the software and for your support!