Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

ObexFTP on win32

2005-03-18
2013-05-01
  • Thomas Horsten
    Thomas Horsten
    2005-03-18

    Hi,

    I want to build ObexFTP on Win32.

    I managed to build OpenObex as a win32 DLL using the supplied makefile.msc after making just a few changes.

    There isn't an MS makefile included with ObexFTP, so I configured it to build as a MinGW app using a Cygwin environment:

    CFLAGS=-mno-cygwin ./configure --host=i686-mingw32msvc --build=i686-mingw32msvc

    Again after a few modifications I managed to build all the object code (using GCC in MinGW mode).

    But at the end I get this:

    ../obexftp/.libs/libobexftp.a(client.o)(.text+0x356): In function `client_done':
    /cygdrive/h/th/obex/obexftp-0.10.6/obexftp/client.c:218: undefined reference to `_ntohl@4'
    ../bfb/.libs/libbfb.a(bfb.o)(.text+0xb1): In function `bfb_stuff_data':
    /cygdrive/h/th/obex/obexftp-0.10.6/bfb/bfb.c:134: undefined reference to `_htons@4'
    ../bfb/.libs/libbfb.a(bfb.o)(.text+0x5c1): In function `bfb_write_packets':
    /cygdrive/h/th/obex/obexftp-0.10.6/bfb/bfb.c:324: undefined reference to `_select@20'
    ../bfb/.libs/libbfb.a(bfb.o)(.text+0x935): In function `bfb_check_data':
    /cygdrive/h/th/obex/obexftp-0.10.6/bfb/bfb.c:493: undefined reference to `_htons@4'
    collect2: ld returned 1 exit status

    That's after modifying the final GCC linking command so it includes ws2_32.dll - I also tried adding some more win32 DLL's as you can see from the command line:

    gcc -mno-cygwin -g -Wall -Wmissing-declarations -Wmissing-prototypes -Wall -mno-cygwin -g -Wall -o obexftp.exe obexftp.o bt_discovery.o  -L.. -lopenobex-0.9 -L../../../../glib/lib -lglib-2.0 -lws2_32 -lwinmm -ladvapi32 -lwsock32 ../obexftp/.libs/libobexftp.a ../cobexbfb/.libs/libcobexbfb.a ../bfb/.libs/libbfb.a

    Any idea how I get further? I have tried with different header files for the htons and select delcarations but to no avail.

    TIA

    Thomas

     
    • MingW32 does only implement POSIX functions, nothing else. However, ntohl(), ntons() and select() are not  POSIX but SUSv2, see
      http://www.opengroup.org/onlinepubs/7990989775/xns/select.html

      CygWin implements more in its layer but you have to use the cygwin DLL.

      HS