archimedes-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [archimedes-discuss] Build error on Ubuntu 18.04.1


From: carl hansen
Subject: Re: [archimedes-discuss] Build error on Ubuntu 18.04.1
Date: Mon, 14 Jan 2019 09:56:19 -0800

On Mon, Jan 14, 2019 at 2:57 AM Ammar Kurd <address@hidden> wrote:
>
> I could not build Archimedes 2.0.1 on my Linux (Ubuntu 18.04.1) machine,
> after the ./configure command I tried the make command but I get the
> following error message:
>
> address@hidden:~/archimedes-2.0.1$ make
> make  all-recursive
> make[1]: Entering directory '/home/ammar/archimedes-2.0.1'
> Making all in src
> make[2]: Entering directory '/home/ammar/archimedes-2.0.1/src'
> gcc     -o archimedes archimedes.o -lm -lm
> archimedes.o: In function `MCdevice_config':
> archimedes.c:(.text+0xf78d): undefined reference to `rnd'
> archimedes.c:(.text+0xfa07): undefined reference to `rnd'
> archimedes.c:(.text+0xfdea): undefined reference to `rnd'
> archimedes.c:(.text+0xfee0): undefined reference to `rnd'
> archimedes.c:(.text+0xff37): undefined reference to `rnd'
> archimedes.o:archimedes.c:(.text+0x10032): more undefined references to
> `rnd' follow
> archimedes.o: In function `EMC':
> archimedes.c:(.text+0x16dba): undefined reference to `creation'
> archimedes.c:(.text+0x17060): undefined reference to `creation'
> archimedes.c:(.text+0x17306): undefined reference to `creation'
> archimedes.c:(.text+0x175ac): undefined reference to `creation'
> archimedes.o: In function `ParabMEP2D':
> archimedes.c:(.text+0x1d039): undefined reference to `MM2'
> archimedes.c:(.text+0x1d0de): undefined reference to `MM2'
> archimedes.c:(.text+0x1d6cd): undefined reference to `MM2'
> archimedes.c:(.text+0x1d772): undefined reference to `MM2'
> archimedes.o: In function `Hole_MEP2D':
> archimedes.c:(.text+0x20e38): undefined reference to `MM2'
> archimedes.o:archimedes.c:(.text+0x20edd): more undefined references to
> `MM2' follow
> collect2: error: ld returned 1 exit status
> Makefile:347: recipe for target 'archimedes' failed
> make[2]: *** [archimedes] Error 1
> make[2]: Leaving directory '/home/ammar/archimedes-2.0.1/src'
> Makefile:325: recipe for target 'all-recursive' failed
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory '/home/ammar/archimedes-2.0.1'
> Makefile:265: recipe for target 'all' failed
> make: *** [all] Error 2
>
> I am not experienced with C  programming, but I think this a linker
> problem of some sort.
>
> ./configure output is as follows:
>
>
> address@hidden:~/archimedes-2.0.1$ ./configure
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking whether make supports nested variables... yes
> checking for g++... g++
> checking whether the C++ compiler works... yes
> checking for C++ compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking for style of include used by make... GNU
> checking dependency style of g++... gcc3
> checking for gcc... gcc
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking dependency style of gcc... gcc3
> checking how to run the C preprocessor... gcc -E
> checking whether ln -s works... yes
> checking whether make sets $(MAKE)... (cached) yes
> checking for ranlib... ranlib
> checking for latex... latex
> checking for dvips... dvips
> checking for dvipdf... dvipdf
> checking for log in -lm... yes
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking for memory.h... (cached) yes
> checking for stdlib.h... (cached) yes
> checking for string.h... (cached) yes
> checking for strings.h... (cached) yes
> checking for unistd.h... (cached) yes
> checking for an ANSI C-conforming const... yes
> checking for inline... inline
> checking whether struct tm is in sys/time.h or time.h... time.h
> checking for memset... yes
> checking for pow... yes
> checking for sqrt... yes
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating doc/Makefile
> config.status: creating src/Makefile
> config.status: creating config.h
> config.status: config.h is unchanged
> config.status: executing depfiles commands
>
> What is the problem?

I tried it, had the same problem.

Solution is :
CFLAGS+=-fgnu89-inline
This gives default (old) behavior; newer compilers have different
symmantics , it seems.
see info gcc



reply via email to

[Prev in Thread] Current Thread [Next in Thread]