[BioC] Trouble building Bioconductor
Herve Pages
hpages at fhcrc.org
Fri Feb 17 20:01:06 CET 2006
Hi Atro,
These problems seem to occur with C compilers that don't support
declarations that appear after an executable statement in a block.
The ability to declare a variable in the middle of a block was introduced
in the C99 specifications. Since the C code in the postmean.c file makes
use of this feature, you'll need a C99-compliant in order to compile it.
For a list of compilers that support C99, see:
http://clc-wiki.net/wiki/C_Compilers
A recent version of gcc (>= 3.3) should work...
Best,
H.
Atro Tossavainen wrote:
>Hi,
>
>I have successfully built R 2.2.1 for x86 Linux, PPC Linux, Solaris 7
>and IRIX 6.5. I am now trying to add Bioconductor to all of these
>using
>
>source("http://www.bioconductor.org/getBioC.R")
>getBioC()
>
>On x86 Linux (what I'm using is essentially FC1), I have no problems.
>
>On Solaris 7, building gcrma fails. Replacing my R path with "..."
>in the following error messages. I am using Sun WorkShop 6 update 2
>C 5.3 2001/05/15.
>
>* Installing *source* package 'gcrma' ...
>** libs
>cc -I/.../R/2.2.1/lib/R/include -I/another/include -KPIC -g -c baseProfile.c -o baseProfile.o
>cc -I/.../R/2.2.1/lib/R/include -I/another/include -KPIC -g -c computeAffinities.c -o computeAffinities.o
>cc -I/.../R/2.2.1/lib/R/include -I/another/include -KPIC -g -c postmean.c -o postmean.o
>"postmean.c", line 26: syntax error before or at: double
>"postmean.c", line 27: undefined symbol: pnorms
>"postmean.c", line 27: cannot dereference non-pointer type
>"postmean.c", line 32: cannot dereference non-pointer type
>"postmean.c", line 33: undefined symbol: diff_pnorms
>"postmean.c", line 33: cannot dereference non-pointer type
>"postmean.c", line 33: cannot dereference non-pointer type
>cc: acomp failed for postmean.c
>*** Error code 2
>make: Fatal error: Command failed for target `postmean.o'
>ERROR: compilation failed for package 'gcrma'
>** Removing '/.../R/2.2.1/lib.sun4x_57/R/library/gcrma'
>
>and everything else fails after that, of course, due to gcrma not having
>been built.
>
>On IRIX 6.5.28, with MIPSpro 7.3 compilers, it fails too:
>
> cc -I/.../R/2.2.1/lib/R/include -I/another/include -OPT:IEEE_NaN_inf=ON -g -c postmean.c -o postmean.o
>cc-1241 cc: ERROR File = postmean.c, Line = 26
> A declaration cannot appear after an executable statement in a block.
>
> double pnorms[K+1],g[K+2],diff_pnorms;
> ^
>
>1 error detected in the compilation of "postmean.c".
>*** Error code 2 (bu21)
>ERROR: compilation failed for package 'gcrma'
>** Removing '/.../R/2.2.1/lib. at sys/R/library/gcrma'
>
>On Yellow Dog Linux 2.3 (PPC, with gcc 2.95.4), it fails too:
>
>gcc -I/.../R/2.2.1/lib/R/include -I/usr/local/include -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -g -O2 -c postmean.c -o postmean.o
>postmean.c: In function `posty':
>postmean.c:26: parse error before `double'
>postmean.c:27: `pnorms' undeclared (first use in this function)
>postmean.c:27: (Each undeclared identifier is reported only once
>postmean.c:27: for each function it appears in.)
>postmean.c:33: `diff_pnorms' undeclared (first use in this function)
>make: *** [postmean.o] Error 1
>ERROR: compilation failed for package 'gcrma'
>** Removing '/.../R/2.2.1/lib. at sys/R/library/gcrma'
>
>Help would be appreciated.
>
>
>
--
------------------------
Hervé Pagès
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the Bioconductor
mailing list