Rev 2 | Blame | Last modification | View Log | RSS feed
TenDRA Frequently Asked Questions
---------------------------------
I am preparing this list of frequently asked questions from the questions
people actually ask me, so it is far from complete.
1. QUESTION: I try to compile the following simple C++ program:
#include <iostream.h>
int main ()
{
cout << "hello world\n" ;
return 0 ;
}
and the compiler is giving me errors.
ANSWER: This release only contains the bare minimum language
support library, not the fully standard C++ library. See the
C++ producer documentation for more details.
2. QUESTION: I try to build the release, but I am having problems
in the API library building phase.
ANSWER: Unfortunately this area is _very_ operating system
dependent. I've set it up so that it works for the operating
systems listed under supported platforms, but this is not a
cast iron guarantee that it will work for other versions of the
same operating system.
Some understanding of how the system works is useful in trying
to work round problems. The start-up files describing the
macros needed to nagivate the system headers for a particular
API are found in:
src/lib/machines/<os>/<cpu>/startup/<api>.h
where <os> is the operating system name, <cpu> is the CPU type,
and <api> is the API name. A set of replacement system headers,
which are checked before the real system headers, are found in:
src/lib/machines/<os>/<cpu>/include
These are also used with the -Ysystem option to tcc, modifications
which are specific to library building, should be enclosed in:
#ifdef __BUILDING_LIBS
.....
#endif
Good places to look for inspiration on how to customise these
files for your particular system include looking to see how
I've done things in similar circumstances. Often a problem
crops up on more than one machine; I may have a workround which
works on another platform which you can steal.
If you don't intend to re-distribute the TenDRA source code
you also have an option which, for copyright reasons, is not
available to us. You can copy the system header into the include
directory above and make minor corrections directly.
If all else fails you can tell the library building to ignore
the header. Find the source file which is failing to compile.
This should contain lines like:
#define __BUILDING_TDF_<API>_<HEADER>
#ifndef __WRONG_<API>
#ifndef __WRONG_<API>_<HEADER>
....
#endif /* __WRONG_<API> */
#endif /* __WRONG_<API>_<HEADER> */
If you insert the line:
#define __WRONG_<API>_<HEADER>
in the corresponding API start-up file:
src/lib/machines/<os>/<cpu>/startup/<api>.h
then the library builder will ignore this header. You will get
a compile-time error ("token not defined") if you subsequently
try to use one of the features from this header.