User Tools

Site Tools


windows_compilation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
windows_compilation [2009/02/12 18:01] – created bpwindows_compilation [2010/10/21 17:46] (current) bp
Line 1: Line 1:
 This short guide describes the steps necessary to compile oofem using Microsoft Visual c++ compiler.  This short guide describes the steps necessary to compile oofem using Microsoft Visual c++ compiler. 
 +===== Compiling trunk (svn) version and versions 1.9 and later =====
 +These instructions are valid since revision 326. 
 +  - for trunk version, get the development version from svn repository. This requires to have svn client installed. If you don't have any, you can try [[http://tortoisesvn.net/ | TortoiseSVN]] client. For release version, download it from oofem website and unpack it.
 +  - Create a new, empty project (Win32 console application).
 +  - In the oofem top directory, create src/config directory. Download [[http://mech.fsv.cvut.cz/~bp/download/oofem-win/oofemcfg.h|oofemcfg.h]] and [[http://mech.fsv.cvut.cz/~bp/download/oofem-win/oofemdef.h|oofemdef.h]] files into this directory. 
 +  - Add all source files, located in src/oofemlib, src/oofemlib/xfem, src/config, src/sm, src/tm, src/fm, and src/dss sub-directories, into the project.
 +  - Add also src/main/main.C and src/main/usrdefsub.C files.
 +  - In the project settings [Menu:Project->Properties, select Configuration Properties->C/C++->Advanced->Compile As), ** add "/TP" compiler option**. This will force ".C" files to be recognized as c++ files. Make sure, that you set this option for all targets.
 +  - Under Project Configuration Properties->C/C++->General, add **all subdirectories under scr directory** to the “Additional Include Directories” item.
 +  - Under the Project Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions, add set of symbols "%%__MODULENAME_MODULE%%", where the MODULENAME is the name of module(s) you want to include. For example, add "%%__OOFEMLIB_MODULE%%; %%__SM_MODULE%%; %%__TM_MODULE%%; %%__FM_MODULE%%; %%__DSS_MODULE%%" if you want to include oofemlib, sm, tm, fm, and dss modules (recommended). Also define "%%__OOFEM%%", "%%__ENABLE_COMPONENT_LABELS%%" and "DEBUG" (if you want a debug version of OOFEM) macros.
 +  - For version 1.9, open sm/src/compodamagemat.C, locate "CompoDamageMat :: ~CompoDamageMat();" (the semicolon at the end is important!) and if found, delete this line.
 +  - Now you should be ready to build oofem solver executable.
 +
 +
 +
 +===== Compiling release version (1.8) =====
    
   - Create a new, empty project (Win32 console application)   - Create a new, empty project (Win32 console application)
Line 5: Line 21:
   - In the project settings, add "/TP" compiler option. This will force ".C" files to be recognized as c++ files.    - In the project settings, add "/TP" compiler option. This will force ".C" files to be recognized as c++ files. 
   - 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.   - 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.
-  - Under the VC project option/preprocessor definition, define __MODULENAME_MODULE (where the MODULENAME is the name of module(s) you want to include, for example define __SM_MODULE and __OOFEMLIB_MODULE). Also define __OOFEM and DEBUG (if you want a debug version of OOFEM) macros.+  - 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 exampledefine" %%__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.
   - Open inverseit.h header file, and find out the “z” definition.  Then change the original definition into <code>FloatArray* z=new(FloatArray[nc]);</code> and don’t forget to add <code>delete [] z;</code>  at the end of usage;    - Open inverseit.h header file, and find out the “z” definition.  Then change the original definition into <code>FloatArray* z=new(FloatArray[nc]);</code> and don’t forget to add <code>delete [] z;</code>  at the end of usage; 
   - In timer.h file, some functions only have declaration but no definitions in the corresponding  cpp file. Comment out the following declarations: <code>   - In timer.h file, some functions only have declaration but no definitions in the corresponding  cpp file. Comment out the following declarations: <code>
windows_compilation.1234458112.txt.gz · Last modified: 2009/02/12 18:01 by bp