I'm trying to compile t38modem on 64-bit CentOS 5.6, using the provided opal and ptlib. I got the libraries to compile (by exporting OPALDIR and PTLIBDIR), but now when I try to compile t38modem itself (with "make USE_OPAL=1 USE_UNIX98_PTY=1 opt"), I run into this:
make DEBUG= default_target
make: Entering directory `/home/ecallen/t38modem-2.0.0'
main_process.cxx
opal/manager.h:54: error: expected class-name before '{' token
opal/manager.h:55: error: 'Comparison' does not name a type
opal/manager.h:69: error: 'OpalCall' has not been declared
opal/manager.h:71: error: 'OpalConnection' has not been declared
opal/manager.h:71: error: expected ',' or '…' before '*' token
opal/manager.h:73: error: 'OpalCall' has not been declared
opal/manager.h:75: error: 'OpalConnection' has not been declared
opal/manager.h:75: error: 'OpalMediaStream' has not been declared
opal/manager.h:76: error: expected ',' or '…' before '&' token
opal/manager.h:76: error: ISO C++ forbids declaration of 'OpalMediaStream' with no type
opal/manager.h:54: warning: 'class MyManager' has virtual functions but non-virtual destructor
opal/manager.h: In member function 'virtual PBoolean MyManager::InternalIsDescendant(const char*) const':
opal/manager.h:55: error: 'OpalManager' has not been declared
opal/manager.h: In member function 'virtual const char* MyManager::GetClass(unsigned int) const':
opal/manager.h:55: error: 'OpalManager' has not been declared
main_process.cxx: In function 'PString GetListOfLibs()':
main_process.cxx:82: error: 'OpalGetVersion' was not declared in this scope
main_process.cxx:95: error: 'PProcess' has not been declared
main_process.cxx: At global scope:
main_process.cxx:105: error: expected class-name before '{' token
main_process.cxx:106: error: 'Comparison' does not name a type
main_process.cxx:105: warning: 'class T38Modem' has virtual functions but non-virtual destructor
main_process.cxx: In member function 'virtual PBoolean T38Modem::InternalIsDescendant(const char*) const':
main_process.cxx:106: error: 'PProcess' has not been declared
main_process.cxx: In member function 'virtual const char* T38Modem::GetClass(unsigned int) const':
main_process.cxx:106: error: 'PProcess' has not been declared
main_process.cxx: At global scope:
main_process.cxx:117: error: expected constructor, destructor, or type conversion before ';' token
main_process.cxx: In constructor 'T38Modem::T38Modem()':
main_process.cxx:120: error: class 'T38Modem' does not have any field named 'PProcess'
main_process.cxx:121: error: 'ReleaseCode' was not declared in this scope
main_process.cxx: In member function 'void T38Modem::Main()':
main_process.cxx:127: error: 'GetName' was not declared in this scope
main_process.cxx:128: error: 'GetVersion' was not declared in this scope
main_process.cxx:130: error: 'GetManufacturer' was not declared in this scope
main_process.cxx:131: error: 'GetOSClass' was not declared in this scope
main_process.cxx:131: error: 'GetOSName' was not declared in this scope
main_process.cxx:132: error: 'GetOSVersion' was not declared in this scope
main_process.cxx:132: error: 'GetOSHardware' was not declared in this scope
main_process.cxx: In member function 'PBoolean T38Modem::Initialise()':
main_process.cxx:146: error: 'GetArguments' was not declared in this scope
main_process.cxx:180: error: 'GetName' was not declared in this scope
main_process.cxx:228: error: 'GetName' was not declared in this scope
main_process.cxx:228: error: 'GetVersion' was not declared in this scope
main_process.cxx:228: error: 'GetOSClass' was not declared in this scope
main_process.cxx:228: error: 'GetOSName' was not declared in this scope
main_process.cxx:228: error: 'GetOSVersion' was not declared in this scope
main_process.cxx:228: error: 'GetOSHardware' was not declared in this scope
make: *** Error 1
make: Leaving directory `/home/ecallen/t38modem-2.0.0'
make: *** Error 2
I haven't yet run a "make install" on opal or ptlib, and I'm wondering if that might be part of the problem. I've tried pointing LD_LIBRARY_PATH at the ../opal/lib_linux_x86_64 and ../ptlib/lib_linux_x86_64 directories, to no avail. Any idea what's wrong here?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm trying to compile t38modem on 64-bit CentOS 5.6, using the provided opal and ptlib. I got the libraries to compile (by exporting OPALDIR and PTLIBDIR), but now when I try to compile t38modem itself (with "make USE_OPAL=1 USE_UNIX98_PTY=1 opt"), I run into this:
make DEBUG= default_target
make: Entering directory `/home/ecallen/t38modem-2.0.0'
main_process.cxx
opal/manager.h:54: error: expected class-name before '{' token
opal/manager.h:55: error: 'Comparison' does not name a type
opal/manager.h:69: error: 'OpalCall' has not been declared
opal/manager.h:71: error: 'OpalConnection' has not been declared
opal/manager.h:71: error: expected ',' or '…' before '*' token
opal/manager.h:73: error: 'OpalCall' has not been declared
opal/manager.h:75: error: 'OpalConnection' has not been declared
opal/manager.h:75: error: 'OpalMediaStream' has not been declared
opal/manager.h:76: error: expected ',' or '…' before '&' token
opal/manager.h:76: error: ISO C++ forbids declaration of 'OpalMediaStream' with no type
opal/manager.h:54: warning: 'class MyManager' has virtual functions but non-virtual destructor
opal/manager.h: In member function 'virtual PBoolean MyManager::InternalIsDescendant(const char*) const':
opal/manager.h:55: error: 'OpalManager' has not been declared
opal/manager.h: In member function 'virtual const char* MyManager::GetClass(unsigned int) const':
opal/manager.h:55: error: 'OpalManager' has not been declared
main_process.cxx: In function 'PString GetListOfLibs()':
main_process.cxx:82: error: 'OpalGetVersion' was not declared in this scope
main_process.cxx:95: error: 'PProcess' has not been declared
main_process.cxx: At global scope:
main_process.cxx:105: error: expected class-name before '{' token
main_process.cxx:106: error: 'Comparison' does not name a type
main_process.cxx:105: warning: 'class T38Modem' has virtual functions but non-virtual destructor
main_process.cxx: In member function 'virtual PBoolean T38Modem::InternalIsDescendant(const char*) const':
main_process.cxx:106: error: 'PProcess' has not been declared
main_process.cxx: In member function 'virtual const char* T38Modem::GetClass(unsigned int) const':
main_process.cxx:106: error: 'PProcess' has not been declared
main_process.cxx: At global scope:
main_process.cxx:117: error: expected constructor, destructor, or type conversion before ';' token
main_process.cxx: In constructor 'T38Modem::T38Modem()':
main_process.cxx:120: error: class 'T38Modem' does not have any field named 'PProcess'
main_process.cxx:121: error: 'ReleaseCode' was not declared in this scope
main_process.cxx: In member function 'void T38Modem::Main()':
main_process.cxx:127: error: 'GetName' was not declared in this scope
main_process.cxx:128: error: 'GetVersion' was not declared in this scope
main_process.cxx:130: error: 'GetManufacturer' was not declared in this scope
main_process.cxx:131: error: 'GetOSClass' was not declared in this scope
main_process.cxx:131: error: 'GetOSName' was not declared in this scope
main_process.cxx:132: error: 'GetOSVersion' was not declared in this scope
main_process.cxx:132: error: 'GetOSHardware' was not declared in this scope
main_process.cxx: In member function 'PBoolean T38Modem::Initialise()':
main_process.cxx:146: error: 'GetArguments' was not declared in this scope
main_process.cxx:180: error: 'GetName' was not declared in this scope
main_process.cxx:228: error: 'GetName' was not declared in this scope
main_process.cxx:228: error: 'GetVersion' was not declared in this scope
main_process.cxx:228: error: 'GetOSClass' was not declared in this scope
main_process.cxx:228: error: 'GetOSName' was not declared in this scope
main_process.cxx:228: error: 'GetOSVersion' was not declared in this scope
main_process.cxx:228: error: 'GetOSHardware' was not declared in this scope
make: *** Error 1
make: Leaving directory `/home/ecallen/t38modem-2.0.0'
make: *** Error 2
I haven't yet run a "make install" on opal or ptlib, and I'm wondering if that might be part of the problem. I've tried pointing LD_LIBRARY_PATH at the ../opal/lib_linux_x86_64 and ../ptlib/lib_linux_x86_64 directories, to no avail. Any idea what's wrong here?
Looks like PTLIBDIR and OPALDIR are not set to the source directories or perhaps you're not using the right versions.
Before making t38modem (ubuntu 10.04 LTS ymmv), I use the following steps:
1) Install dependancies (flex, bison, libtiff, etc)
2) configure, make and install spanDSP from: wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.6pre18.tgz
3) configure, make and install ptlib from : svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk -r 24174 ptlib
4) Install the patch for opal found at: https://sourceforge.net/projects/t38modem/files/t38modem/2.0.0/
5) Configure, make and install opal from : svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk -r 24174 opal
6) Go into the opal/plugins/fax/fax_spandsp directory, and do a make, make install
7) run ldconfig
8) set the variable: export PTLIBPLUGINDIR=/usr/local/lib/opal-3.9.0
9) Then I get t38modem 2.0 from: http://sourceforge.net/projects/t38modem/files/t38modem/2.0.0/t38modem-2.0.0.tgz
The evnironment variables should be set to the source directories:
export PTLIBDIR=/usr/src/ptlib/
export OPALDIR=/usr/src/opal/
This includes spanDSP and the patch for SIPPDU. You may not need these.
Hope this helps
Mark