[Win32utils-devel] ffi and msvc

Daniel Berger djberg96 at gmail.com
Mon Jan 9 09:02:45 EST 2012


Hi,

> I forked ffi and made "just work" version of mingw and mswin32.
> 
> You can download it from https://github.com/phasis68/ffi

Fantastic!

I cloned the repo locally and tried to install it using "rake gem:install". BTW, that takes a few minutes and requires the rake-compiler and rdoc gems for anyone else who wants to try it.

Anyway, it eventually failed with:

AbstractMemory.c
AbstractMemory.c(34) : fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : re
turn code '0x2'
Stop. 

This is with MSVC++ 9 on Windows Vista.

Here's some more detail

...
mkdir -p pkg
cd pkg/ffi-1.0.11
  Successfully built RubyGem
  Name: ffi
  Version: 1.0.11
  File: ffi-1.0.11.gem
mv ffi-1.0.11.gem ../ffi-1.0.11.gem
cd -
 gem.bat install --local pkg/ffi-1.0.11
Building native extensions.  This could take a while...
ERROR:  Error installing pkg/ffi-1.0.11:
        ERROR: Failed to build gem native extension.

        c:/rubyvc9/bin/ruby.exe extconf.rb
checking for rb_thread_blocking_region()... no
checking for ruby_thread_has_gvl_p()... no
checking for ruby_native_thread_p()... no
checking for rb_thread_call_with_gvl()... no
creating extconf.h
creating Makefile

nmake

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

        c:\rubyvc9\bin\ruby -e "puts 'EXPORTS', 'Init_ffi_c'"  > ffi_c-i386-mswin32_90.def

Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

        1 file(s) copied.
        1 file(s) copied.
        cl.exe -EP -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT
=0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 .\src
\x86\win32.S >.\src\x86\win32.asm
win32.S
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\closures.obj -Fd.\.libs\ffi-3-src .\src\closures.c
closures.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\debug.obj -Fd.\.libs\ffi-3-src .\src\debug.c
debug.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\java_raw_api.obj -Fd.\.libs\ffi-3-src .\src\java_raw_api.c
java_raw_api.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\prep_cif.obj -Fd.\.libs\ffi-3-src .\src\prep_cif.c
prep_cif.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\raw_api.obj -Fd.\.libs\ffi-3-src .\src\raw_api.c
raw_api.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\types.obj -Fd.\.libs\ffi-3-src .\src\types.c
types.c
        cl.exe -c -nologo -Zi -D_MD -W3 -DWIN32 -DWINNT -D_WIN32 -D_WINDOWS -D_WINNT -D_WIN32_WINNT=
0x0501 -D_WIN32_IE=0x0600 -D_X86_=1 -DNDEBUG -MD -O2 -Ob2 -Oy- -I . -I .\include -I .\src\x86 -Fo.\s
rc\x86\ffi.obj -Fd.\.libs\ffi-3-src .\src\x86\ffi.c
ffi.c
        ml.exe -c -coff -W3 -Cx -Zm -Di386 -DQUIET -D?QUIET /Fo .\src\x86\win32.obj .\src\x86\win32.
asm
 Assembling: .\src\x86\win32.asm
.\src\x86\win32.asm(842) : warning A6004:procedure argument or local not referenced : FORCEFRAME
.\src\x86\win32.asm(995) : warning A6004:procedure argument or local not referenced : FORCEFRAME
Microsoft (R) Macro Assembler Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.

        "link.exe" /LIB /NOLOGO /MACHINE:X86 /out:.\.libs\libffi_convenience.lib @C:\Users\djberge\A
ppData\Local\Temp\nm5C70.tmp
        cl -W3 -nologo -I. -I. -Ic:/rubyvc9/lib/ruby/1.8/i386-mswin32_90 -I. -Ic:\rubyvc9\lib\ruby\g
ems\1.8\gems\ffi-1.0.11\ext\ffi_c/libffi/include -Ic:\rubyvc9\lib\ruby\gems\1.8\gems\ffi-1.0.11\ext\
ffi_c/libffi/src/x86 -MD   -O2b2xty- -DRUBY_EXTCONF_H=\"extconf.h\" -D_CRT_SECURE_NO_DEPRECATE -D_CR
T_NONSTDC_NO_DEPRECATE -c -TcAbstractMemory.c
AbstractMemory.c
AbstractMemory.c(34) : fatal error C1083: Cannot open include file: 'stdint.h': No such file or dire
ctory
NMAKE : fatal error U1077: '"c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\cl.EXE"' : re
turn code '0x2'
Stop.


Gem files will remain installed in c:/rubyvc9/lib/ruby/gems/1.8/gems/ffi-1.0.11 for inspection.
Results logged to c:/rubyvc9/lib/ruby/gems/1.8/gems/ffi-1.0.11/ext/ffi_c/gem_make.out
rake aborted!
Command failed with status (1): [ gem.bat install --local pkg/ffi-1.0.11...]

Tasks: TOP => gem:install
(See full trace by running task with --trace)

What have I done wrong?

Regards,

Dan



More information about the win32utils-devel mailing list