Size: 4607
Comment:
|
Size: 4685
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
When running {{{make configPt}}} or when running {{{./configure && make fast install}}} gives the | If running {{{make configPt}}} or running {{{./configure && make fast install}}} gives the |
Line 72: | Line 72: |
This seems to be related with the compiler setup. As a work-around, you may copy the file {{{mexopt.sh}}} from a previous matlab version, i.e., copy | This problem is caused because the linker flags in Matlab changed in R2009a. To fix this problem, open the file {{{$HOME/.matlab/R2009a/mexopts.sh}}}, and change the entry of LDFLAGS from {{{ -twolevel_namespace -undefined error }}} to {{{ -flat_namespace -undefined suppress }}} Alternatively, you may copy the file {{{mexopt.sh}}} from a previous matlab version, i.e., copy |
Line 74: | Line 83: |
Alternatively, you may run from a matlab prompt {{{ >> mex -setup }}} and select the gcc compiler. This should create the file {{{mexopt.sh}}}. |
Help
1. Compilation problems
1.1. Error when compiling Ptolemy II (Windows only)
If running make configPt or running ./configure && make fast install gives the following error
/bin/sh: -c: line 1: unexpected EOF while looking for matching `'' /bin/sh: -c: line 4: syntax error: unexpected end of file
then the source code is most likely with Unix line endings. Download the Windows source code from the Ptolemy web page.
1.2. Error when compiling MATLAB (Windows only)
Under Windows, if the BCVTB is compiled using the Microsoft compiler, then the MATLAB libraries also need to be compiled with the Microsoft compiler. If, however, the gcc compiler has been used when compiling the BCVTB, then the following compilation error may be obtained when compiling the MATLAB libraries:
Writing library for establishBSDSocket.mexw32 c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_establishclientsocket' c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_exchangewithsocket' c:\docume~1\mwetter\locals~1\temp\mex_ae679\simulinksocket.obj .text: undefined reference to '_closeipc'
To fix this problem, open Matlab, run
mex -setup
and select the Microsoft Visual C++ compiler from the menu. This need to be done only once as it updates your Matlab settings.
1.3. Error when compiling MATLAB (Mac OS X with Matlab R2009a only)
Under Mac OS X, if the BCVTB is compiled in Matlab R2009a, the following error may occur:
Undefined symbols: "_mxGetM", referenced from: _mexFunction in establishBSDSocket.o "_mxGetN", referenced from: _mexFunction in establishBSDSocket.o "_mxIsNumeric", referenced from: _mexFunction in establishBSDSocket.o "_mxGetClassID", referenced from: _ssGetDTypeIdFromMxArray in establishBSDSocket.o "_mxCalloc", referenced from: __RegNumInputPortsCB in establishBSDSocket.o __RegNumOutputPortsCB in establishBSDSocket.o _mexFunction in establishBSDSocket.o "_mxGetPr", referenced from: _mexFunction in establishBSDSocket.o "_mxIsComplex", referenced from: _mexFunction in establishBSDSocket.o "_mxCreateDoubleMatrix_700", referenced from: _mexFunction in establishBSDSocket.o ld: symbol(s) not found collect2: ld returned 1 exit status mex: link of ' "establishBSDSocket.mexmaci"' failed. ??? Error using ==> mex at 218 Unable to complete successfully. Error in ==> /Applications/MATLAB_R2009a.app/toolbox/simulink/simulink/+legacycode/@LCT/compile.p>compile at 261 Error in ==> /Applications/MATLAB_R2009a.app/toolbox/simulink/simulink/legacy_code.p>legacy_code at 91 Error in ==> compile at 58 legacy_code('compile', def, ...
This problem is caused because the linker flags in Matlab changed in R2009a. To fix this problem, open the file $HOME/.matlab/R2009a/mexopts.sh, and change the entry of LDFLAGS from
-twolevel_namespace -undefined error
to
-flat_namespace -undefined suppress
Alternatively, you may copy the file mexopt.sh from a previous matlab version, i.e., copy $HOME/.matlab/"matlab-version"/mexopt.sh to $HOME/.matlab/R2009a/mexopts.sh.
2. Runtime problems
The following steps typically help analyzing problems if a simulation program does not work as expected.
2.1. Investigate program output
Depending on how simulation programs are called by the Simulation actor in Ptolemy, the console output written by the simulation program may not be visible. To see the console output, change the command line of the Ptolemy actor from
bash ./runClient.sh
to
xterm -e bash ./runClient.sh
This will start a terminal that shows the output of the running simulation program which help analyzing what goes wrong, for example, when the simulation program terminates due to an error before connecting to the BCVTB.
2.2. Investigate log files
If something goes wrong during the simulation, check the files simulation.log, utilSocket.log and utilClient.log. They contain log messages that may indicate the cause of the problem. If these files do not exist, go to the directory bcvtb/lib, open the file defines.h and add the line
#define NDEBUG
Then, from the directory bcvtb/lib compile the libraries using
make clean make
and rerun the simulation. Now the log files should be written to the directory from which you started the BCVTB.