[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Building for windows. Again.



Kristoffer Sjögren wrote:
The py-lmdb project have a comment [1] about reusing Python.h headers
which seems to work for them.

# Microsoft Visual Studio 9 ships with neither inttypes.h, stdint.h, or a sane
# definition for ssize_t, so here we add lib/win32 to the search path, which
# contains emulation header files provided by a third party. We force-include
# Python.h everywhere since it has a portable definition of ssize_t, which
# inttypes.h and stdint.h lack, and to avoid having to modify the LMDB source
# code. Advapi32 is needed for LMDB's use of Windows security APIs.

Note in ITS#8067 we added an ssize_t typedef for MSVC. Also in #8069 we changed to explicitly use the ANSI APIs, so if you're using Unicode file paths that will certainly be garbled now.

[1] https://github.com/dw/py-lmdb/blob/master/setup.py

On Thu, Nov 19, 2015 at 10:13 PM, Kristoffer Sjögren <stoffe@gmail.com> wrote:
The actual build command:

$ cmd.exe /X /C "vcbuild /platform:x64 vs2008.vcproj release"

On Thu, Nov 19, 2015 at 10:11 PM, Kristoffer Sjögren <stoffe@gmail.com> wrote:
That's the thing, the build doesn't complain about anything missing.
But the binary seems broken because tests fail randomly.

A user tried the generated binary on his machine and it worked but also said...

"Hm, almost, the database file is no longer put to the requested
directory, and its name is totally garbled. It finds it consistently
though, and the contents are correct."

https://github.com/deephacks/lmdbjni/issues/48

On Thu, Nov 19, 2015 at 9:57 PM, Howard Chu <hyc@symas.com> wrote:
Kristoffer Sjögren wrote:

Hi

I'm trying to build LMDB with Java/JNI bindings with Visual C++
Project Builder 9.00.30729 (vcbuild).

Unfortunately, vcbuild don't ship with inttypes.h, stdint.h, or a sane
ssize_t. So I searched around and found a few candidates [1] of
inttypes.h and stdint.h that seems to be working for py-lmdb.

However, unistd.h seems broken for windows - and the python guys use
python.h instead.

Any ideas where I might find a good unistd.h?


I see you have one already - what is wrong with it, what definitions are
missing?


Cheers,
-Kristoffer


[1] https://github.com/deephacks/lmdbjni/tree/master/lmdbjni-win64/headers




--
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/



--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/