Re: [pjsip] Building pjsua as DLL

DC
David Clark
Wed, Jan 23, 2008 11:24 PM

Ok I ran into issues with two functions trying this.
The first function was:
pj_exception_throw_ () : in except.c  The PJ_DEF() macro was present
in the function declaration but not in the except.h header file.
My solution take the PJ_DEF off.  I can see no reason for
pj_exception_throw_ () being called at the application level.

pjsip_tx_data_create() : in this case the header does not have the
PJ_DECL() macro which would make it match the definition.
My solution add PJ_DECL() to the header file for this function.

Which leaves me with one problem:
I get a .dll created but only dll_main is included as a exported
function.  Not sure if the linker is dropping all the other functions because
the dll itself does not actually use them or what?

Yes PJ_DLL and PJ_EXPORTING is in every project file.
And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h

Any ideas?  I know the other .dll creation method I saw a link to in
emals used a access function for each pjsip library function it wanted to
call.  I could build that and it would most likely work, but I was
hoping to avoid it with this method.

Thanks,
David Clark

At 06:11 AM 1/23/2008, you wrote:

The correct link is

http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm

I'll fix the wiki shortly.

On 1/23/08, David Clark vdc1048@tx.rr.com wrote:

Ok I went to the link here and to the specific .dll page but that
link did not come up.  The broken link is:
http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm
comes up page not found.  Did it move?

Thanks,
David Clark

At 05:59 AM 11/22/2007, you wrote:

programmer wrote:

Hi Benny..

a couple of months ago I spent
a lot of time trying to build the
windows pjmedia.dll file;
it should be very useful to put
these istructions and steps
in a chapter of the your documentation.

Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll

Thanks for the suggestion!

cheers,
-benny

Thanks so much for your work!

cheers, andrea


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date:
11/22/2007 11:49 AM

--
Perry Ismangil
http://www.pjsip.org


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date:
1/22/2008 11:04 AM

Ok I ran into issues with two functions trying this. The first function was: pj_exception_throw_ () : in except.c The PJ_DEF() macro was present in the function declaration but not in the except.h header file. My solution take the PJ_DEF off. I can see no reason for pj_exception_throw_ () being called at the application level. pjsip_tx_data_create() : in this case the header does not have the PJ_DECL() macro which would make it match the definition. My solution add PJ_DECL() to the header file for this function. Which leaves me with one problem: I get a .dll created but only dll_main is included as a exported function. Not sure if the linker is dropping all the other functions because the dll itself does not actually use them or what? Yes PJ_DLL and PJ_EXPORTING is in every project file. And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h Any ideas? I know the other .dll creation method I saw a link to in emals used a access function for each pjsip library function it wanted to call. I could build that and it would most likely work, but I was hoping to avoid it with this method. Thanks, David Clark At 06:11 AM 1/23/2008, you wrote: >The correct link is > >http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > >I'll fix the wiki shortly. > >On 1/23/08, David Clark <vdc1048@tx.rr.com> wrote: > > Ok I went to the link here and to the specific .dll page but that > > link did not come up. The broken link is: > > http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > > comes up page not found. Did it move? > > > > Thanks, > > David Clark > > > > > > At 05:59 AM 11/22/2007, you wrote: > > >programmer wrote: > > > > Hi Benny.. > > > > > > > > a couple of months ago I spent > > > > a lot of time trying to build the > > > > windows pjmedia.dll file; > > > > it should be very useful to put > > > > these istructions and steps > > > > in a chapter of the your documentation. > > > > > >Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll > > > > > >Thanks for the suggestion! > > > > > >cheers, > > > -benny > > > > > > > > > > Thanks so much for your work! > > > > > > > > cheers, andrea > > > > > > > > > > > >_______________________________________________ > > >Visit our blog: http://blog.pjsip.org > > > > > >pjsip mailing list > > >pjsip@lists.pjsip.org > > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > >-- > > >No virus found in this incoming message. > > >Checked by AVG Free Edition. > > >Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date: > > >11/22/2007 11:49 AM > > > > > > _______________________________________________ > > Visit our blog: http://blog.pjsip.org > > > > pjsip mailing list > > pjsip@lists.pjsip.org > > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > >-- >Perry Ismangil >http://www.pjsip.org > >_______________________________________________ >Visit our blog: http://blog.pjsip.org > >pjsip mailing list >pjsip@lists.pjsip.org >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > >-- >No virus found in this incoming message. >Checked by AVG Free Edition. >Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date: >1/22/2008 11:04 AM
DC
David Clark
Thu, Jan 24, 2008 12:56 AM

At 05:24 PM 1/23/2008, you wrote:

Which leaves me with one problem:
I get a .dll created but only dll_main is included as a exported
function.  Not sure if the linker is dropping all the other functions because
the dll itself does not actually use them or what?

Yes PJ_DLL and PJ_EXPORTING is in every project file.
And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h

Any ideas?  I know the other .dll creation method I saw a link to in
emals used a access function for each pjsip library function it wanted to
call.  I could build that and it would most likely work, but I was
hoping to avoid it with this method.

tried the linker optimization: OPT:/NOREF

which based on my read of the doc for microsoft visual 2005 should
have been on point.
No luck...same thing.

David Clark

Thanks,
David Clark

At 06:11 AM 1/23/2008, you wrote:

The correct link is

http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm

I'll fix the wiki shortly.

On 1/23/08, David Clark vdc1048@tx.rr.com wrote:

Ok I went to the link here and to the specific .dll page but that
link did not come up.  The broken link is:
http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm
comes up page not found.  Did it move?

Thanks,
David Clark

At 05:59 AM 11/22/2007, you wrote:

programmer wrote:

Hi Benny..

a couple of months ago I spent
a lot of time trying to build the
windows pjmedia.dll file;
it should be very useful to put
these istructions and steps
in a chapter of the your documentation.

Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll

Thanks for the suggestion!

cheers,
-benny

Thanks so much for your work!

cheers, andrea


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date:
11/22/2007 11:49 AM

--
Perry Ismangil
http://www.pjsip.org


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date:
1/22/2008 11:04 AM


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date:
1/23/2008 10:24 AM

At 05:24 PM 1/23/2008, you wrote: >Which leaves me with one problem: >I get a .dll created but only dll_main is included as a exported >function. Not sure if the linker is dropping all the other functions because >the dll itself does not actually use them or what? > >Yes PJ_DLL and PJ_EXPORTING is in every project file. >And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h > >Any ideas? I know the other .dll creation method I saw a link to in >emals used a access function for each pjsip library function it wanted to >call. I could build that and it would most likely work, but I was >hoping to avoid it with this method. tried the linker optimization: OPT:/NOREF which based on my read of the doc for microsoft visual 2005 should have been on point. No luck...same thing. David Clark >Thanks, >David Clark > > >At 06:11 AM 1/23/2008, you wrote: > >The correct link is > > > >http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > > > >I'll fix the wiki shortly. > > > >On 1/23/08, David Clark <vdc1048@tx.rr.com> wrote: > > > Ok I went to the link here and to the specific .dll page but that > > > link did not come up. The broken link is: > > > http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > > > comes up page not found. Did it move? > > > > > > Thanks, > > > David Clark > > > > > > > > > At 05:59 AM 11/22/2007, you wrote: > > > >programmer wrote: > > > > > Hi Benny.. > > > > > > > > > > a couple of months ago I spent > > > > > a lot of time trying to build the > > > > > windows pjmedia.dll file; > > > > > it should be very useful to put > > > > > these istructions and steps > > > > > in a chapter of the your documentation. > > > > > > > >Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll > > > > > > > >Thanks for the suggestion! > > > > > > > >cheers, > > > > -benny > > > > > > > > > > > > > Thanks so much for your work! > > > > > > > > > > cheers, andrea > > > > > > > > > > > > > > > >_______________________________________________ > > > >Visit our blog: http://blog.pjsip.org > > > > > > > >pjsip mailing list > > > >pjsip@lists.pjsip.org > > > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > > > > >-- > > > >No virus found in this incoming message. > > > >Checked by AVG Free Edition. > > > >Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date: > > > >11/22/2007 11:49 AM > > > > > > > > > _______________________________________________ > > > Visit our blog: http://blog.pjsip.org > > > > > > pjsip mailing list > > > pjsip@lists.pjsip.org > > > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > >-- > >Perry Ismangil > >http://www.pjsip.org > > > >_______________________________________________ > >Visit our blog: http://blog.pjsip.org > > > >pjsip mailing list > >pjsip@lists.pjsip.org > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > >-- > >No virus found in this incoming message. > >Checked by AVG Free Edition. > >Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date: > >1/22/2008 11:04 AM > > >_______________________________________________ >Visit our blog: http://blog.pjsip.org > >pjsip mailing list >pjsip@lists.pjsip.org >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > >-- >No virus found in this incoming message. >Checked by AVG Free Edition. >Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date: >1/23/2008 10:24 AM
DC
David Clark
Thu, Jan 24, 2008 2:06 AM

At 06:56 PM 1/23/2008, you wrote:

At 05:24 PM 1/23/2008, you wrote:

Which leaves me with one problem:
I get a .dll created but only dll_main is included as a exported
function.  Not sure if the linker is dropping all the other

functions because

the dll itself does not actually use them or what?

Yes PJ_DLL and PJ_EXPORTING is in every project file.
And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h

Any ideas?  I know the other .dll creation method I saw a link to in
emals used a access function for each pjsip library function it wanted to
call.  I could build that and it would most likely work, but I was
hoping to avoid it with this method.

tried the linker optimization: OPT:/NOREF

which based on my read of the doc for microsoft visual 2005 should
have been on point.
No luck...same thing.

Ok this is a known issue discussed here:
http://www.codeprof.com/dev-archive/13/8-96-139259.shtm
There are some work arounds for it presented.

David Clark

David Clark

Thanks,
David Clark

At 06:11 AM 1/23/2008, you wrote:

The correct link is

http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm

I'll fix the wiki shortly.

On 1/23/08, David Clark vdc1048@tx.rr.com wrote:

Ok I went to the link here and to the specific .dll page but that
link did not come up.  The broken link is:
http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm
comes up page not found.  Did it move?

Thanks,
David Clark

At 05:59 AM 11/22/2007, you wrote:

programmer wrote:

Hi Benny..

a couple of months ago I spent
a lot of time trying to build the
windows pjmedia.dll file;
it should be very useful to put
these istructions and steps
in a chapter of the your documentation.

Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll

Thanks for the suggestion!

cheers,
-benny

Thanks so much for your work!

cheers, andrea


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date:
11/22/2007 11:49 AM

--
Perry Ismangil
http://www.pjsip.org


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date:
1/22/2008 11:04 AM


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date:
1/23/2008 10:24 AM


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date:
1/23/2008 10:24 AM

At 06:56 PM 1/23/2008, you wrote: >At 05:24 PM 1/23/2008, you wrote: > >Which leaves me with one problem: > >I get a .dll created but only dll_main is included as a exported > >function. Not sure if the linker is dropping all the other > functions because > >the dll itself does not actually use them or what? > > > >Yes PJ_DLL and PJ_EXPORTING is in every project file. > >And PJ_EXPORT_SPECIFIER and PJ_IMPORT_SPECIFIER is in config_site.h > > > >Any ideas? I know the other .dll creation method I saw a link to in > >emals used a access function for each pjsip library function it wanted to > >call. I could build that and it would most likely work, but I was > >hoping to avoid it with this method. > >tried the linker optimization: OPT:/NOREF > >which based on my read of the doc for microsoft visual 2005 should >have been on point. >No luck...same thing. Ok this is a known issue discussed here: http://www.codeprof.com/dev-archive/13/8-96-139259.shtm There are some work arounds for it presented. David Clark >David Clark > > > > >Thanks, > >David Clark > > > > > >At 06:11 AM 1/23/2008, you wrote: > > >The correct link is > > > > > >http://www.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > > > > > >I'll fix the wiki shortly. > > > > > >On 1/23/08, David Clark <vdc1048@tx.rr.com> wrote: > > > > Ok I went to the link here and to the specific .dll page but that > > > > link did not come up. The broken link is: > > > > http://trac.pjsip.org/pjlib/docs/html/group__pj__dll__target.htm > > > > comes up page not found. Did it move? > > > > > > > > Thanks, > > > > David Clark > > > > > > > > > > > > At 05:59 AM 11/22/2007, you wrote: > > > > >programmer wrote: > > > > > > Hi Benny.. > > > > > > > > > > > > a couple of months ago I spent > > > > > > a lot of time trying to build the > > > > > > windows pjmedia.dll file; > > > > > > it should be very useful to put > > > > > > these istructions and steps > > > > > > in a chapter of the your documentation. > > > > > > > > > >Just added this in the FAQ: http://www.pjsip.org/trac/wiki/FAQ#dll > > > > > > > > > >Thanks for the suggestion! > > > > > > > > > >cheers, > > > > > -benny > > > > > > > > > > > > > > > > Thanks so much for your work! > > > > > > > > > > > > cheers, andrea > > > > > > > > > > > > > > > > > > > >_______________________________________________ > > > > >Visit our blog: http://blog.pjsip.org > > > > > > > > > >pjsip mailing list > > > > >pjsip@lists.pjsip.org > > > > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > > > > > > > >-- > > > > >No virus found in this incoming message. > > > > >Checked by AVG Free Edition. > > > > >Version: 7.5.503 / Virus Database: 269.16.4/1145 - Release Date: > > > > >11/22/2007 11:49 AM > > > > > > > > > > > > _______________________________________________ > > > > Visit our blog: http://blog.pjsip.org > > > > > > > > pjsip mailing list > > > > pjsip@lists.pjsip.org > > > > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > > > > > >-- > > >Perry Ismangil > > >http://www.pjsip.org > > > > > >_______________________________________________ > > >Visit our blog: http://blog.pjsip.org > > > > > >pjsip mailing list > > >pjsip@lists.pjsip.org > > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > > > > >-- > > >No virus found in this incoming message. > > >Checked by AVG Free Edition. > > >Version: 7.5.516 / Virus Database: 269.19.9/1237 - Release Date: > > >1/22/2008 11:04 AM > > > > > >_______________________________________________ > >Visit our blog: http://blog.pjsip.org > > > >pjsip mailing list > >pjsip@lists.pjsip.org > >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > > > >-- > >No virus found in this incoming message. > >Checked by AVG Free Edition. > >Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date: > >1/23/2008 10:24 AM > > >_______________________________________________ >Visit our blog: http://blog.pjsip.org > >pjsip mailing list >pjsip@lists.pjsip.org >http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > >-- >No virus found in this incoming message. >Checked by AVG Free Edition. >Version: 7.5.516 / Virus Database: 269.19.9/1239 - Release Date: >1/23/2008 10:24 AM
DC
David Clark
Thu, Jan 24, 2008 5:41 PM

Ok this is a known issue discussed here:
http://www.codeprof.com/dev-archive/13/8-96-139259.shtm
There are some work arounds for it presented.

David Clark

Ok trying various techniques discussed here.  I think the only
technique which is going to work result in a .dll with all functions
in it.  Is to link in all the .obj files.
Alas...when I try and add those and new linker options and tell the
linker not to link the .libs from dependent projects, I get other
linker errors.

Punting going back to the access function approach which is
successfully demod here:
I've just updated web page with some additional info (See
http://sipekphone.googlepages.com/pjsipwrapperhttp://sipekphone.googlepages.com/pjsipwrapper).

And here is a direct link to pjsipDll sources at SVN repository:
http://sipek.googlecode.com/svn/trunk/pjsipDllhttp://sipek.googlecode.com/svn/trunk/pjsipDll

This approach also works with pre 0.8.0 pjsip libraries.

Thanks,
David Clark

>Ok this is a known issue discussed here: >http://www.codeprof.com/dev-archive/13/8-96-139259.shtm >There are some work arounds for it presented. > >David Clark Ok trying various techniques discussed here. I think the only technique which is going to work result in a .dll with all functions in it. Is to link in all the .obj files. Alas...when I try and add those and new linker options and tell the linker not to link the .libs from dependent projects, I get other linker errors. Punting going back to the access function approach which is successfully demod here: I've just updated web page with some additional info (See <http://sipekphone.googlepages.com/pjsipwrapper>http://sipekphone.googlepages.com/pjsipwrapper). And here is a direct link to pjsipDll sources at SVN repository: <http://sipek.googlecode.com/svn/trunk/pjsipDll>http://sipek.googlecode.com/svn/trunk/pjsipDll This approach also works with pre 0.8.0 pjsip libraries. Thanks, David Clark