TETware includes Installation Guides for the UNIX operating
system and the Windows NT operating system.
There is a also a configure script , which can simplify
configuration on known platforms. When a new platform
is encountered typically the changes are limited to
definitions for the compiler and associated build tools.
back to index
Yes, this is a design goal of the TETware project, as is
ultimately being able to develop a single source of
tests to run across heterogeneous systems.
back to index
The method used is as near as possible the same as used on a UNIX
system. We don't use projects or other facilities specific to the Microsoft
Developer Studio.
We use a "defined build environment" to build TETware on NT/2000.
The principle components of this environment are cl (the command-line
interface to the Microsoft Visual C++ compiler) and the MKS Toolkit
(mainly MKS make, cc, ar and sh).
The way in which we use this environment ensures that TETware builds in
as near the same way as possible on a UNIX system and an NT/2000 platform.
In practice, the only differences are a specific defines.mk
file and a slightly modified version of compiler.ccg (the file which
instructs MKS cc how to drive the cl compiler).
back to index
This is definable in the makefile. UNIX systems can handle either one.
back to index
When I link the program, I got the following error message:
Linking...
libapi.lib(child.obj) : error LNK2001: unresolved external
symbol _tet_main
Debug/x.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
x.exe - 2 error(s), 18 warning(s)
My program heading looks like this:
int tet_main(int argc, char **argv)
{
.....
}
When you use the C++ API, your tet_main() function must have C linkage
in order to enable the linker to resolve the symbol correctly.
In a C++ program you give a function C linkage by putting it inside
an 'extern "C"' code block.
For example:
extern "C" {
int tet_main(int argc, char ** argv)
{
// whatever you want here
}
}
back to index