Compiling OpenSees 1.6 HPC3000 UX11

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

Post Reply
chri
Posts: 2
Joined: Tue Oct 12, 2004 3:33 am

Compiling OpenSees 1.6 HPC3000 UX11

Post by chri » Tue Oct 12, 2004 7:23 am

Hi,

I am trying to compile OpenSees on a HP Workstation C3000, Unix V11. I have updated the makefile.def, however, the following errors appear during the compile process:

Error 212: "TclDatabaseCommands.cpp", line 77 # Argument type 'int (void *,Tcl_Interp *,int,char **)' does not match expected parameter
type 'int (*)(void *,Tcl_Interp *,int,const char **)'.
Tcl_CreateCommand(interp, "save", save,
^^^^
Error 212: "TclDatabaseCommands.cpp", line 79 # Argument type 'int (void *,Tcl_Interp *,int,char **)' does not match expected parameter
type 'int (*)(void *,Tcl_Interp *,int,const char **)'.
Tcl_CreateCommand(interp, "restore", restore,
^^^^^^^
Does anybody know what I am doing wrong?
I have installed ActiveTcl8.4.7.

Thank you very much for your input,

Christoph

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Tue Oct 12, 2004 5:31 pm

you need to add -D_TCL84 to the c++ flagsin the Makefile.def .. the tcl people changed their api on us between versions 8.3 and 8.4

chri
Posts: 2
Joined: Tue Oct 12, 2004 3:33 am

Compiling OpenSees 1.6 HPC3000 UX11.10

Post by chri » Wed Oct 13, 2004 4:08 am

Hi,

thanks a lot. I added the flag and I could move one step forward. However, now several other errors and warnings occur during the compile process:

1. in the file "f2c.h" (OpenSees/SRC/matrix/f2c.h I had to remove the lines 291-293 and 295-297:

#ifndef _KAI
extern double erf(double) throw();
#endif
#ifndef _KAI
extern double erfc(double) throw();
#endif

because there was a conflict with the definitions of "extern double erf" and "extern double erfc(double)" given in "math.h". After I removed these line I was able to continue with the compilation, however, I have no idea how this effects the program.


2. many warning such as

Warning 652: "/root/OpenSees/SRC/material/nD/ElasticIsotropicAxiSymm.h", line 46 # Virtual function "NDMaterial
*ElasticIsotropicMaterial::getCopy(const char *)" is hidden by "NDMaterial *ElasticIsotropicAxiSymm::getCopy()"; did you forget to override it?
class ElasticIsotropicAxiSymm : public ElasticIsotropicMaterial
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

appear.

3. The compilation process stopped when the following error messages occured:

TclModelBuilderNDMaterialCommand.cpp -o TclModelBuilderNDMaterialCommand.o
Error 399: "/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 248 # Cannot use the :: operator with incomplete class EPState
["/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 44].
const EPState & EPState::operator=(const EPState &rhs ); //Overloading assignme
^^^^^^^^^
Error 187: "/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 248 # Referenced object 'operator =' is not a member of class EPState
["/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 44].
const EPState & EPState::operator=(const EPState &rhs ); //Overloading assignment
^
Error 399: "/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 248 # Cannot use the :: operator with incomplete class EPState
["/root/OpenSees/SRC/material/nD/Template3Dep/EPState.h", line 44].
const EPState & EPState::operator=(const EPState &rhs ); //Overloading assignment
^

4. when I try to recompile the program warnings such as

Unknown target Steel2.o, try: make help

appear before the errors described in 3 stop the compilation process.

I am grateful for any advice and help.

Regards,

Christoph

fmk
Site Admin
Posts: 5883
Joined: Fri Jun 11, 2004 2:33 pm
Location: UC Berkeley
Contact:

Post by fmk » Fri Oct 15, 2004 11:52 am

1. the compiler you are using might be the KAI compiler or one similar in which case this function is defined in math.h .. so you are fine.

2. you can ignore these warning messages.

3. i have updated the EPSState.h file in the repository, not quite sure why they defined the overload operation the way the did. hopefully it will compile now!

4. probably due to the fact that it didn't get through the compilation, so not all .o files were created.

Post Reply