nestor wrote:Hi
I am trying to compile Arcem, the Acorn Archimedes emulator from source following billb's "hard way" guide.
Before I started, I installed the following development libraries with the Gnome package manager
- Development libraries
- Legacy software development
- X Software development
I then changed the variable ENDIAN variable in the makefile to BIGEND, save that and ran make
Here's what I get:
- Code: Select all
[nestor@localhost arcem]$ make
cc -O3 -DBIGEND -DNOOS -DNOFPE -Wall -Wno-return-type -Wno-unknown-pragmas -Wshadow -Wundef -Wpointer-arith -Wcast-align -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wcast-qual -Werror -IX -Iarch -funroll-loops -fexpensive-optimizations -ffast-math -fomit-frame-pointer -frerun-cse-after-loop -DSYSTEM_X -I/usr/X11R6/include -c armcopro.c
In file included from armcopro.c:18:
armdefs.h:22:19: error: stdio.h: No such file or directory
armdefs.h:23:20: error: stdlib.h: No such file or directory
In file included from armdefs.h:63,
from armcopro.c:18:
arch/archio.h:5:20: error: signal.h: No such file or directory
In file included from arch/DispKbd.h:10,
from arch/armarc.h:7,
from armdefs.h:64,
from armcopro.c:18:
/usr/include/X11/Xlib.h:52:23: error: sys/types.h: No such file or directory
In file included from arch/armarc.h:9,
from armdefs.h:64,
from armcopro.c:18:
arch/fdc1772.h:10: error: expected specifier-qualifier-list before ‘FILE’
In file included from arch/armarc.h:10,
from armdefs.h:64,
from armcopro.c:18:
arch/hdc63463.h:42: error: expected specifier-qualifier-list before ‘FILE’
make: *** [armcopro.o] Error 1
[nestor@localhost arcem]$
Any idea why stdio.h and other libraries aren't found?
Google tells me these are the very basic ones ...
What do i need to install to get them?
Thanks!
nestor
Hi Nestor!
In the C programming language files ending in .h are known as header files which contain references which are usually called by other files. There are courses and reference texts discussing header files and other aspects of C in great detail which are commonly available. Keep in mind that C is the language which built Unix/Linux so there should be some reference somewhere which should appeal to you.
One of my favorite technical authors is Bruce Eckel, reading his work
Thinking in C could be useful.
The nature of the errors you are seeing are basically of two different categories:
- Header files used by C.
- Header files used by the X window system which is the fundamental window manager within Unix/Linux. Keep in mind what I said earlier, nearly every tool, function and system within Linux/Unix is developed or built from C. The difference to keep in mind is that the header file referring to the X window system is unique to it (Xlib.h) and not a member of those libraries comprising the C language itself.
Using the above information to your advantage:
Make sure that your yum.repos.d directory has as many repositories available that you believe you need; there are
discussion threads on the YDL Board regarding which repositories are recommended. Here is what yum reports on my system after the above has been completed:
- Code: Select all
# yum info "gcc*"
Loading "protectbase" plugin
Loading "installonlyn" plugin
0 packages excluded due to repository protections
Installed Packages
Name : gcc
Arch : ppc
Version: 4.1.2
Release: 44
Size : 10 M
Repo : installed
Summary: Various compilers (C, C++, Objective-C, Java, ...)
Description:
The gcc package contains the GNU Compiler Collection version 4.1.
You'll need this package in order to compile C code.
Name : gcc-c++
Arch : ppc
Version: 4.1.2
Release: 44
Size : 8.0 M
Repo : installed
Summary: C++ support for GCC
Description:
This package adds C++ support to the GNU Compiler Collection.
It includes support for most of the current C++ specification,
including templates and exception handling.
Name : gcc-gfortran
Arch : ppc
Version: 4.1.2
Release: 44
Size : 9.5 M
Repo : installed
Summary: Fortran 95 support
Description:
The gcc-gfortran package provides support for compiling Fortran 95
programs with the GNU Compiler Collection.
Name : gcc-java
Arch : ppc
Version: 4.1.2
Release: 44
Size : 6.8 M
Repo : installed
Summary: Java support for GCC
Description:
This package adds support for compiling Java(tm) programs and
bytecode into native code.
Name : gcc-objc
Arch : ppc
Version: 4.1.2
Release: 44
Size : 6.6 M
Repo : installed
Summary: Objective-C support for GCC
Description:
gcc-objc provides Objective-C support for the GCC.
Mainly used on systems running NeXTSTEP, Objective-C is an
object-oriented derivative of the C language.
Name : gcc-objc++
Arch : ppc
Version: 4.1.2
Release: 44
Size : 6.8 M
Repo : installed
Summary: Objective-C++ support for GCC
Description:
gcc-objc++ package provides Objective-C++ support for the GCC.
#
You can use either yum or the Add/Remove application to acquire, update and install gnuc which is invoked by using gcc not cc. The Add/Remove application uses yum anyway so having yum using the approved repositories is an advantage as all the packages, updates and dependencies will be there as though they were located in one place. It won't make a difference to yum if it is working through three or more repositories looking for what interests you, where yum is most useful is determining for you which dependencies are necessary for each package.
Here is a link discussing more details which may be useful.
Note that by using the info flag you can discover whether something is installed or available elsewhere and not installed. Let's say you wanted to make sure that you have all the packages for x11 the x windows server. Using yum you execute:
- Code: Select all
# yum info "x*11*"
Loading "protectbase" plugin
Loading "installonlyn" plugin
0 packages excluded due to repository protections
Installed Packages
Name : x3270-x11
Arch : ppc
Version: 3.3.4p7
Release: 5.fc6
Size : 692 k
Repo : installed
Summary: IBM 3278/3279 terminal emulator for the X Window System
Description:
The x3270 program opens a window in the X Window System which emulates
the actual look of an IBM 3278/3279 terminal, commonly used with
mainframe applications. x3270 also allows you to telnet to an IBM
host from the x3270 window.
Install the x3270-x11 package if you need to access IBM hosts using an IBM
3278/3279 terminal emulator from X11.
Name : xorg-x11-apps
Arch : ppc
Version: 7.1
Release: 4.0.1
Size : 632 k
Repo : installed
Summary: X.Org X11 applications
Description:
A collection of common X Window System applications.
...snipped...
Name : xorg-x11-drivers
Arch : ppc
Version: 7.3
Release: 4
Size : 5.5 k
Repo : base
Summary: X.Org X11 driver installation package
Description:
The purpose of this package is to require all of the individual X.Org
driver rpms, to allow the OS installation software to install all drivers
all at once, without having to track which individual drivers are present
on each architecture. By installing this package, it forces all of the
individual driver packages to be installed.
In Linux it can be annoying to think one is ready to compile something only to discover one is missing one or another package. Invoking the info flag within yum can shorten the mystery regarding what one has and what one can get very quickly. If you need a package more current than what is in the repositories then you will have to go to the webpage of the developers to acquire the latest version in source and compile it within your system.
Eventually you should be able to complete your original intention.
All the best...