Home Corporate Contacts


You are here: TETworks > TETware FAQ Index > FAQ

Build Questions

B1. How do I build TETware  from source?

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

B2. Does TETware have a single source for UNIX® systems & Windows® Systems?

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

B3. How do you build the Windows NT / Windows 2000 version of TETware?

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

B4. Are TETware's C++ extensions "C" or "cpp" for Microsoft compilers?

This is definable in the makefile. UNIX systems can handle either one.

back to index

B5. I have trouble linking to tet_main when using MS Visual C++. What should I do?

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

Home Contacts Legal Copyright Corporate News

Copyright © The Open Group 1995-2012, All Rights Reserved