[omniORB] omniORB 4.2.3 - mingw x86 - tcpSocket.cc error - sprintf
DIETMAR MAY
dietmar.may at outlook.com
Thu Mar 14 15:25:26 GMT 2019
When building omniORB 4.2.3 with cygwin's mingw compiler, I receive the error below.
Looks like either it's building with wchar support, or one of the #defines is missing and I'm picking up the wrong #if code sections.
omkdepend builds fine, as do a number of other components up to tcpSocket.cc
Any ideas?
-------
/usr/bin/i686-w64-mingw32-g++ -c -O2 -D_WINSTATIC -mthreads -I.. -I./..
-I../../../../include/omniORB4/internal -DUSE_omniORB_logStream
-D_OMNIORB_LIBRARY -DOMNIORB_VERSION_STRING='"4.2.3"'
-DOMNIORB_VERSION_HEX='0x040203F1'
-DCONFIG_DEFAULT_LOCATION='"C:\\OMNIORB.CFG"'
-DCONFIG_ENV='"OMNIORB_CONFIG"' -D"NTArchitecture" -I. -I.
-I../../../../include -D__WIN32__ -D_WIN32_WINNT=0x0400 -D__x86__
-D__NT__ -D__OSVERSION__=4 -ostatic/tcpSocket.o tcpSocket.cc
tcpSocket.cc: In static member function ‘static char*
omni::tcpSocket::addrToString(sockaddr*)’:
tcpSocket.cc:976:3: error: ‘sprintf’ was not declared in this scope
sprintf(result,"%d.%d.%d.%d",ip1,ip2,ip3,ip4);
^~~~~~~
tcpSocket.cc:976:3: note: suggested alternative: ‘wsprintf’
sprintf(result,"%d.%d.%d.%d",ip1,ip2,ip3,ip4);
^~~~~~~
wsprintf
tcpSocket.cc: In static member function ‘static char*
omni::tcpSocket::addrToURI(sockaddr*, const char*)’:
tcpSocket.cc:1065:3: error: ‘sprintf’ was not declared in this scope
sprintf(result,"%s%d.%d.%d.%d:%d",prefix, ip1, ip2, ip3, ip4, port);
^~~~~~~
tcpSocket.cc:1065:3: note: suggested alternative: ‘wsprintf’
sprintf(result,"%s%d.%d.%d.%d:%d",prefix, ip1, ip2, ip3, ip4, port);
^~~~~~~
wsprintf
make[3]: *** [../../../../mk/mingw.mk:290: static/tcpSocket.o] Error 1
-------
I've installed Cygwin x86, with mingw64-i686-gcc-g++ and cygwin binutils
packages.
I've downloaded and installed MSVC++ 2008 SP1 redistributables
https://www.microsoft.com/en-US/download/details.aspx?id=5582
and copied MSVCRT90.DLL to cygwin's /usr/bin directory.
I've edited <top>/config/config.mk and enabled
platform = x86_win32_mingw
I've installed python.org's python interpreter, and don't have cygwin's
python installed:
$printenv PATH
/usr/local/bin:/usr/bin: ... :/C/programs/python
$ which python
/C/programs/python/python
I've edited <top>/mk/platforms/x86_win32_mingw.mk and updated the PYTHON
macro:
PYTHON = /c/programs/python/python
(cygwin's /etc/fstab contains "c:/ /C ntfs binary,posix=0,user 0 0")
I've changed <top>/mk/mingw.mk:
MINGW = /usr/bin/i686-w64-mingw32-
AR = ar cq
CXX = $(MINGW)g++
CXXLINK = $(MINGW)g++
CC = $(MINGW)gcc
CLINK = $(MINGW)gcc
More information about the omniORB-list
mailing list