Trying to compile an app (yate3) with h323plus 2010-05-25 cvs ( from
gnugk site ) I've got the following error:
>>>
In file included from /home/folarte/include/openh323/h323con.h:555,
from /home/folarte/include/openh323/h323.h:492,
from h323chan.cpp:32:
/home/folarte/include/openh323/h323caps.h:289:31: error:
../include/codecs.h: No such file or directory
<<<
My setup is
ptlib 2.8.2, 'configure --prefix=$HOME', make opt, make install.
h323plus 2010-05-25 cvs, 'configure ..... --prefix=$HOME', make
opt, make install.
I end up having the following include directory:
folarte@gkaps ~ $ ls -l ~/include
total 44
drwxr-xr-x 8 folarte folarte 4096 Aug 10 18:12 openh323
-r--r--r-- 1 folarte folarte 23668 Aug 10 18:08 ptbuildopts.h
drwxr-xr-x 2 folarte folarte 4096 Aug 10 18:08 ptclib
drwxr-xr-x 3 folarte folarte 4096 Aug 10 18:08 ptlib
-r--r--r-- 1 folarte folarte 4794 Aug 10 18:08 ptlib.h
folarte@gkaps ~ $ find include -name h323caps.h -ls
1056359 104 -r--r--r-- 1 folarte folarte 105274 Aug 10 18:12
include/openh323/h323caps.h
folarte@gkaps ~ $ find include -name codecs.h -ls
1056338 44 -r--r--r-- 1 folarte folarte 44804 Aug 10 18:12
include/openh323/codecs.h
And the compilation command issued by yate seems correct:
make[1]: Entering directory `/home/folarte/src/yate/modules'
g++ -Wall -I.. -I.. -O2 -fno-check-new -fno-exceptions -fPIC
-DHAVE_GCC_FORMAT_CHECK -finline -Winline -export-dynamic -shared
-Wl,--unresolved-symbols=ignore-in-shared-libs
-Wl,--retain-symbols-file,/dev/null -o h323chan.yate -DPHAS_TEMPLATES
-D_REENTRANT -DP_HAS_SEMAPHORES -I/home/folarte/include/ptlib
-I/home/folarte/include/openh323 h323chan.cpp -L/home/folarte/lib
-lopenh323 -L/home/folarte/lib -lpt -L.. -lyate
In file included from /home/folarte/include/openh323/h323con.h:555,
from /home/folarte/include/openh323/h323.h:492,
from h323chan.cpp:32:
/home/folarte/include/openh323/h323caps.h:289:31: error:
../include/codecs.h: No such file or directory
In file included from /home/folarte/include/openh323/channels.h:190,
from /home/folarte/include/openh323/h323caps.h:290,
from /home/folarte/include/openh323/h323con.h:555,
from /home/folarte/include/openh323/h323.h:492,
from h323chan.cpp:32:
Browsing cvs for h323caps.c I've found:
>>>
Revision 1.15 - (view) (download) (as text) (annotate) - [select for diffs]
Fri Aug 21 04:35:47 2009 UTC (11 months, 2 weeks ago) by shorne
Branch: MAIN
Changes since 1.14: +4 -1 lines
Diff to previous 1.14
Expressly reference codecs.h to avoid problems with windows SDK codecs.h
*** h323caps.h 2009/07/09 15:11:12 1.14
--- h323caps.h 2009/08/21 04:35:47 1.15
***************
*** 27,32 ****
--- 27,35 ----
* Contributor(s): ______________________________________.
*
* $Log: h323caps.h,v $
+ * Revision 1.15 2009/08/21 04:35:47 shorne
+ * Expressly reference codecs.h to avoid problems with windows SDK codecs.h
+ *
* Revision 1.14 2009/07/09 15:11:12 shorne
* Simplfied and standardised compiler directives
*
***************
*** 274,280 ****
#endif
! #include "codecs.h"
#include "channels.h"
#include "mediafmt.h"
--- 277,283 ----
#endif
! #include "../include/codecs.h"
#include "channels.h"
#include "mediafmt.h"
<<<<<<<<<
This may fix up problems in windows, but leads to a problem when using
the installed version.
During make phase in h323 headers are $BASE/h323plus/include, but they
get installed to $PREFIX/include/openh323, and become incorrect.
I don't know how to fix up these in windows, apart of renaming
codecs.h to h323_codecs.h, but I thing reverting the fix should make
it work again.
Making a symbolic link:
folarte@gkaps ~/include $ ln -s openh323 include
folarte@gkaps ~/include $ ls -l include
lrwxrwxrwx 1 folarte folarte 8 Aug 10 19:32 include -> openh323
Makes it work again ( note it includes properly, warns later on):
make[1]: Entering directory `/home/folarte/src/yate/modules'
g++ -Wall -I.. -I.. -O2 -fno-check-new -fno-exceptions -fPIC
-DHAVE_GCC_FORMAT_CHECK -finline -Winline -export-dynamic -shared
-Wl,--unresolved-symbols=ignore-in-shared-libs
-Wl,--retain-symbols-file,/dev/null -o h323chan.yate -DPHAS_TEMPLATES
-D_REENTRANT -DP_HAS_SEMAPHORES -I/home/folarte/include/ptlib
-I/home/folarte/include/openh323 h323chan.cpp -L/home/folarte/lib
-lopenh323 -L/home/folarte/lib -lpt -L.. -lyate
In file included from /home/folarte/include/openh323/../include/codecs.h:345,
from /home/folarte/include/openh323/h323caps.h:289,
from /home/folarte/include/openh323/h323con.h:555,
from /home/folarte/include/openh323/h323.h:492,
from h323chan.cpp:32:
/home/folarte/include/ptlib/ptlib/object.h: In member function
'virtual PBoolean<unnamed>::YateH323_ExternalRTPChannel::InternalIsDescendant(const
char*) const':
/home/folarte/include/ptlib/ptlib/object.h:1107: warning: inlining
failed in call to 'virtual PBoolean
PObject::InternalIsDescendant(const char*) const': call is unlikely
and code size would grow
/home/folarte/include/openh323/channels.h:248: warning: called from here
but it's an horrible hack.
Regards.
Francisco Olarte.