You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Andreas Richter <ar...@oszine.de> on 2006/10/20 08:24:26 UTC

can't use apr_time_ansi_put

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

i have installed svn 1.4.0 executable and the _dev package on windows.

When i try to link (MSVC2005) against libapr.lib and try to use
apr_time_ansi_put then i become an linker error that it can't find the
symbol
  __imp_apr_time_ansi_put@12

I have searched for that symbol in the svn libraries and doesn't find
it. I can find only the symbol
  __imp_apr_time_ansi_put@8

The same source compiled successfull on linux with svn 1.4.

Are there any bugs in the development libraries? I have no idea where i
can solve this problem. Any help are welcome.

Tia & Greetings

- --
Andreas 'ar' Richter
http://www.oszine.de - http://ar.oszine.de
GPG-KeyID: 0x7BA12DD9
Fingerprint: D2E9 202B F4F0 EB16 25DE 5FF7 0CF2 3C57 7BA1 2DD9
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFOIe6DPI8V3uhLdkRAgKtAKCLIyz1qienGkIC/rNIZPwjc1hAJACgla6W
HrhUEZIGoeggL9SRzatB1bk=
=5cPq
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: can't use apr_time_ansi_put

Posted by Andreas Richter <ar...@oszine.de>.
Am Sonntag, 29. Oktober 2006 21:17 schrieb D.J. Heap:

> The issue is a difference in the definition of time_t -- VC2005
> changed it to a 64bit type by default and these libraries are built
> with VC6.  Set the _USE_32BIT_TIME_T preprocessor definition for your
> VC2005 project and it will work.  

Thanks. That's work.

-- 
Andreas 'ar' Richter
http://www.oszine.de - http://ar.oszine.de
GPG-KeyID: 0x7BA12DD9
Fingerprint: D2E9 202B F4F0 EB16 25DE 5FF7 0CF2 3C57 7BA1 2DD9

Re: can't use apr_time_ansi_put

Posted by Andreas Richter <ar...@oszine.de>.
Am Sonntag, 29. Oktober 2006 21:28 schrieb D.J. Heap:
>
> I should also mention that this snippet is incorrect and will not
> actually work, of course.  It needs to look more like:
>
>           apr_time_t result;
>           apr_status_t status;
>           time_t input = time(0);
>
>           status = apr_time_ansi_put( &result, input );

You're right. It was only an example. The original code looks:

  DateTime::DateTime(const QDateTime&dt)
    : m_time(0)
  {
    apr_time_ansi_put(&m_time,dt.toTime_t());
  }


-- 
Andreas 'ar' Richter
http://www.oszine.de - http://ar.oszine.de
GPG-KeyID: 0x7BA12DD9
Fingerprint: D2E9 202B F4F0 EB16 25DE 5FF7 0CF2 3C57 7BA1 2DD9

Re: can't use apr_time_ansi_put

Posted by "D.J. Heap" <dj...@gmail.com>.
On 10/29/06, D.J. Heap <dj...@gmail.com> wrote:
> On 10/29/06, Andreas Richter <ar...@oszine.de> wrote:
> [snip]
> >
> > Hm. It looks like my calls are correct. In apr_time.h (from the
> > svn-win32-1.4.0_dev.zip) apr_time_ansi_put ist declared as:
> >
> > APR_DECLARE(apr_status_t) apr_time_ansi_put(apr_time_t *result,
> >                                                    time_t input);
> >
> >
> > and my call (for example) is:
> >
> >          apr_time_t *result;
> >          time_t input;
> >
> >          apr_time_ansi_put( result, input );
> >
> > MSVC++2005 compiles it correct but can't link it. I become the following
> > (german) error message:
> >
> > error LNK2019: Verweis auf nicht aufgelöstes externes
> > Symbol "__imp__apr_time_ansi_put@12" in Funktion ""public: __thiscall
> > svn::DateTime::DateTime(class QDateTime const &)"
> > (??0DateTime@svn@@QAE@ABVQDateTime@@@Z)"..
> >
> > > Maybe someone with more win32 experience can confirm whether this is a
> > > general problem with the win32 development package.
> >
> > Are there any known problems in the development packages svn-win32-1.4.0?
> >
>
>
> The issue is a difference in the definition of time_t -- VC2005
> changed it to a 64bit type by default and these libraries are built
> with VC6.  Set the _USE_32BIT_TIME_T preprocessor definition for your
> VC2005 project and it will work.  Or you could also rebuilt APR
> yourself with VC2005 if you want the 64bit time_t.
>


I should also mention that this snippet is incorrect and will not
actually work, of course.  It needs to look more like:

          apr_time_t result;
          apr_status_t status;
          time_t input = time(0);

          status = apr_time_ansi_put( &result, input );

DJ

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: can't use apr_time_ansi_put

Posted by "D.J. Heap" <dj...@gmail.com>.
On 10/29/06, Andreas Richter <ar...@oszine.de> wrote:
[snip]
>
> Hm. It looks like my calls are correct. In apr_time.h (from the
> svn-win32-1.4.0_dev.zip) apr_time_ansi_put ist declared as:
>
> APR_DECLARE(apr_status_t) apr_time_ansi_put(apr_time_t *result,
>                                                    time_t input);
>
>
> and my call (for example) is:
>
>          apr_time_t *result;
>          time_t input;
>
>          apr_time_ansi_put( result, input );
>
> MSVC++2005 compiles it correct but can't link it. I become the following
> (german) error message:
>
> error LNK2019: Verweis auf nicht aufgelöstes externes
> Symbol "__imp__apr_time_ansi_put@12" in Funktion ""public: __thiscall
> svn::DateTime::DateTime(class QDateTime const &)"
> (??0DateTime@svn@@QAE@ABVQDateTime@@@Z)"..
>
> > Maybe someone with more win32 experience can confirm whether this is a
> > general problem with the win32 development package.
>
> Are there any known problems in the development packages svn-win32-1.4.0?
>


The issue is a difference in the definition of time_t -- VC2005
changed it to a 64bit type by default and these libraries are built
with VC6.  Set the _USE_32BIT_TIME_T preprocessor definition for your
VC2005 project and it will work.  Or you could also rebuilt APR
yourself with VC2005 if you want the 64bit time_t.

DJ

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org


Re: can't use apr_time_ansi_put

Posted by Andreas Richter <ar...@oszine.de>.
Am Freitag, 27. Oktober 2006 03:05 schrieb Malcolm Rowe:
> On Fri, Oct 20, 2006 at 10:24:26AM +0200, Andreas Richter wrote:
> > When i try to link (MSVC2005) against libapr.lib and try to use
> > apr_time_ansi_put then i become an linker error that it can't find the
> > symbol
> >   __imp_apr_time_ansi_put@12
> >
> > I have searched for that symbol in the svn libraries and doesn't find
> > it. I can find only the symbol
> >   __imp_apr_time_ansi_put@8
>
> It looks like there's a problem with the calling convention or prototype
> that your include file is bringing in, because your compiler has decided
> that it should pass a larger set of arguments to that function than the
> function in the library declares.

Hm. It looks like my calls are correct. In apr_time.h (from the 
svn-win32-1.4.0_dev.zip) apr_time_ansi_put ist declared as:

APR_DECLARE(apr_status_t) apr_time_ansi_put(apr_time_t *result, 
                                                    time_t input);


and my call (for example) is:

	  apr_time_t *result;
	  time_t input;

	  apr_time_ansi_put( result, input );

MSVC++2005 compiles it correct but can't link it. I become the following 
(german) error message:

error LNK2019: Verweis auf nicht aufgelöstes externes 
Symbol "__imp__apr_time_ansi_put@12" in Funktion ""public: __thiscall 
svn::DateTime::DateTime(class QDateTime const &)" 
(??0DateTime@svn@@QAE@ABVQDateTime@@@Z)".. 

> Maybe someone with more win32 experience can confirm whether this is a
> general problem with the win32 development package.

Are there any known problems in the development packages svn-win32-1.4.0?


-- 
Andreas 'ar' Richter
http://www.oszine.de - http://ar.oszine.de
GPG-KeyID: 0x7BA12DD9
Fingerprint: D2E9 202B F4F0 EB16 25DE 5FF7 0CF2 3C57 7BA1 2DD9

Re: can't use apr_time_ansi_put

Posted by Malcolm Rowe <ma...@farside.org.uk>.
On Fri, Oct 20, 2006 at 10:24:26AM +0200, Andreas Richter wrote:
> When i try to link (MSVC2005) against libapr.lib and try to use
> apr_time_ansi_put then i become an linker error that it can't find the
> symbol
>   __imp_apr_time_ansi_put@12
> 
> I have searched for that symbol in the svn libraries and doesn't find
> it. I can find only the symbol
>   __imp_apr_time_ansi_put@8
> 

It looks like there's a problem with the calling convention or prototype
that your include file is bringing in, because your compiler has decided
that it should pass a larger set of arguments to that function than the
function in the library declares.

Maybe someone with more win32 experience can confirm whether this is a
general problem with the win32 development package.

Regards,
Malcolm