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 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///startup/.h where is the operating system name, is the CPU type, and is the API name. A set of replacement system headers, which are checked before the real system headers, are found in: src/lib/machines///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__
#ifndef __WRONG_ #ifndef __WRONG__
.... #endif /* __WRONG_ */ #endif /* __WRONG__
*/ If you insert the line: #define __WRONG__
in the corresponding API start-up file: src/lib/machines///startup/.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.