User Tools

Site Tools


windows_compilation

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
windows_compilation [2009/02/12 18:08] – Fixing some typos bpwindows_compilation [2009/10/09 15:32] – added __ENABLE_COMPONENT_LABELS define 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.
 +  - 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 20:
   - 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 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.+  - 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.
   - 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.txt · Last modified: 2010/10/21 17:46 by bp