Frequently Asked Questions

General     Debugging     Download     Parallelism   
KCC Users' FAQ     KAI C++ Home    


  1. Migrating from Cfront, Gnu, and other early C++ Compilers
    Collected hints are available in Migration Guide for porting Cfront Codes.
  2. G++ users with templates
    Try the command-line option -tlocal when compiling source files with C++ templates that were originally written for g++.
  3. Overloaded operator resolution problems
    Try the command-line option --cfront_3.0 or --cfront_2.1 when compiling source files written for older compilers that are cfront compatible. By default, KAI C++ uses the ISO C++ rules for resolving overloaded operators, not the cfront rules.
  4. #include <string.h>
    To assist users porting from earlier C++ compilers, before namespaces were a part of C++, every standard class library include file has a corresponding .h include file, except for string. This is because the file name string.h is already used by the standard C library. To make the names in the C++ version of string, accessible in the default namespace instead of namespace std, use this:
    #include <string>
    using namespace std;
  5. Using Purify with KCC
    Some tools such as Purify are invoked as a prefix to the normal linking command. If, like Purify, they do not recognize "KCC" as a compiler that runs the native linker, you can pass the prefix for the tool via the option --link_command_prefix. E.g.:
    KCC --link_command_prefix `which purify` ...


  1. KCC options to use when debugging
    Compile with +K0 for debugging.
    KAI has modified the gnu debugger gdb for use with KAI C++. Check the download page to see if it is available for your system.
  2. Debugging with GNU GDB
    To use GDB for debugging executables compiled by KCC, first run the GDB command:
    set demangle-style edg
    If you want the command run automatically when you start gdb, put it in a .gdbinit file in your home directory.
  3. Graphical Interface to GDB Debugger
    gdbtk a tcl/tk interface to gdb



  1. Why aren't the *.tar files compressed?
    There is no need to compress the *.tar files because the contents of the tar file is (except for a few small files) already compressed. The common compression schemes (*.Z, *.zip, etc.) have little to no effect on the size of the downloadable *.tar files from this page.


  1. Is KAI C++ thread-safe?
    Starting with Version 3.3d of KAI C++, some ports are entirely thread-safe. This includes use of exceptions and the standard class library. For more information on thread-safety, check the tutorial on Multithreaded C++. To enable thread-safety, you must download and install the separately packaged thread-safe library. It is easy to tell if the port you need is now thread-safe. Just check the download page to see if a thread-safe library exists for the port you need.
    Ports that do not have a downloadable thread-safe library are not thread-safe in the presence of exceptions or uses of the class library. KAI does not recommend using these ports in a threaded environment.
  2. When will all ports of KAI C++ be thread-safe?
    Check the top of the download page to see the current schedule.
    Contact if you need a firm date, or if the port you need is not yet scheduled..
  3. When will KAI C++ support Open/MP pragmas?
    Support for Open/MP pragmas is contained in the Guide/C++ product. Guide/C++ contains all of the functionality of KAI C++ plus the support for Open/MP.

Updated 13 August 1998