Entering edit mode
4.5 years ago
elcortegano
▴
200
Hi, I'm trying to use PAML for dN/dS computation, but I am failing at the very beggining trying to compile the software for Manjaro Linux (kernel 4.19.125-1-MANJARO).
I am downloading the latest package (named paml4.9j.tgz
), and following steps in the documentation PDF. Compilation breaks running make
at the very begining. Seems to be a "multiple definitions" error. Copy at the end (in Spanish).
I am surprised to see this kind of error here, and wonder if might have to do with the compiler version (gcc version 10.1.0 in my system). Any ideas on how to get this program working?
Error message
cc -O3 -o baseml baseml.c tools.c -lm
En el fichero incluido desde baseml.c:131:
treesub.c: En la función ‘IdenticalSeqs’:
treesub.c:1310:33: aviso: se pasa el argumento 3 de ‘printSeqs’ desde un tipo de puntero incompatible [-Wincompatible-pointer-types]
1310 | printSeqs(ftmp, com.z, com.spname, com.ns, com.ls, com.npatt, com.fpatt, NULL, keep, 1);
| ~~~^~~~~~~
| |
| char **
En el fichero incluido desde baseml.c:11:
paml.h:150:63: nota: se esperaba ‘unsigned char **’ pero el argumento es de tipo ‘char **’
150 | void printSeqs(FILE *fout, unsigned char *z[], unsigned char *spnames[], int ns, int ls, int npatt, double fpatt[], int *pose, char keep[], int format);
| ~~~~~~~~~~~~~~~^~~~~~~~~
/usr/bin/ld: /tmp/ccjyZfNR.o:(.bss+0x4540): definiciones múltiples de `OutTreeOptions'; /tmp/cciRP2PR.o:(.bss+0x2a0dfd8): primero se definió aquí
/usr/bin/ld: /tmp/ccjyZfNR.o:(.bss+0x4544): definiciones múltiples de `SeqTypes'; /tmp/cciRP2PR.o:(.bss+0x2a0dfdc): primero se definió aquí
collect2: error: ld devolvió el estado de salida 1
make: *** [Makefile:12: baseml] Error 1
I can conform compilation works with GCC 4.9.2, GCC 6.3.0 and GCC 9.3.0. You could install from conda, or call make with a different version of the compiler, if one is available at you system:
Paml may have compile time problems if you have gcc 11.2.0. To fix the problem, you can install the gcc 9.4.0 version which can be installed with the following command: "sudo apt-get install -y gcc-9".
After that, modify the src/Makefile text file by replacing "cc" with "gcc-9" on line 2. With this change PAML should be correctly installed.
This explanation is at:: https://github.com/victorcana/PANAS