User Tools

Site Tools


windows_compilation

This is an old revision of the document!


This short guide describes the steps necessary to compile oofem using Microsoft Visual c++ compiler.

  1. Create a new, empty project (Win32 console application)
  2. Add all relevant files into the project. Identify modules that you need (oofemlib must be included). The relevant files can be easily explored from makefile templates located in OOFEM_TOP_DIR/base directory)
  3. In the project settings, add “/TP” compiler option. This will force “.C” files to be recognized as c++ files.
  4. Get oofemcfg.h and oofemdef.h files from OOFEM_TOP_DIR/base directory. Then #define HAVE_BOOLTYPE, TIME_WITH_SYS_TIME and HAVE_MACRO_VA_ARGS.
  5. Under the VC project option/preprocessor definition, define set of symbols “__MODULENAME_MODULE”, where the MODULENAME is the name of module(s) you want to include. For example, define“__SM_MODULE” and “__OOFEMLIB_MODULE” if you want to include oofemlib and sm modules.
    Also define “__OOFEM” and “DEBUG” (if you want a debug version of OOFEM) macros.
  6. Open inverseit.h header file, and find out the “z” definition. Then change the original definition into
    FloatArray* z=new(FloatArray[nc]);

    and don’t forget to add

    delete [] z;

    at the end of usage;

  7. In timer.h file, some functions only have declaration but no definitions in the corresponding cpp file. Comment out the following declarations:
    //timersub(&end_wtime, &start_wtime, &etime);
    //timeradd(&etime, &elapsedWTime, &elapsedWTime);
    //timersub(&end_utime, &start_utime, &etime);
    //timeradd(&etime, &elapsedUTime, &elapsedUTime);
    //start_utime=end_utime; start_wtime=end_wtime;
  8. Lack of #define clock.h statement in clock.h file, which would produce “redefinition” compile errors.
windows_compilation.1234458515.txt.gz · Last modified: 2009/02/12 18:08 by bp