[omniORB] Compile omniORB302 error:implicit declaration of function `int strtoull(...)'
tony lam
corba@telekbird.com.cn
Fri, 27 Oct 2000 09:38:00 +0800
Thanks all.
I modify the idlutil.cc and add a condition to compile
in SCO. It can work now.
But I meet another problem when I compile the omniORB.
making export in src/lib/omniORB2...
make[2]: Entering directory `/home/omni/src/lib/omniORB2'
../../../bin/x86_osr5/omniidl -bcxx -Wba -p../../../src/lib/omniORB2 -ComniORB3
../../../idl/Naming.idl
omniidl: ERROR!
omniidl: Could not open IDL compiler module _omniidlmodule.so
omniidl: Please make sure it is in directory /home/omni/lib/x86_osr5
omniidl: (or set the PYTHONPATH environment variable)
omniidl: (The error was `No module named _omniidl')
make[2]: *** [omniORB3/Naming.hh] Error 1
make[2]: Leaving directory `/home/omni/src/lib/omniORB2'
make[1]: *** [export] Error 1
make[1]: Leaving directory `/home/omni/src/lib'
make: *** [export] Error 1
I notice that the file dir.mk in $(TOP)/src/tool/omniidl/cxx
just not contains the script for SCO OSR5.So I add the following
contents like FreeBsd.
=======================================================
ifdef OSR5
CXXOPTIONS += -fPIC
libname = _omniidlmodule.so
soname = $(libname).$(IDLMODULE_MAJOR)
lib = $(soname).$(IDLMODULE_MINOR)
all:: $(lib)
$(lib): $(OBJS) $(PYOBJS)
(set -x; \
$(RM) $@; \
$(CXXLINK) $(CXXLINKOPTIONS) -shared -o $@ -Wl,-soname,$(soname) \
$(IMPORT_LIBRARY_FLAGS) \
$(filter-out $(LibSuffixPattern),$^) $(LIBS)\
)
export:: $(lib)
@$(ExportLibrary)
@(set -x; \
cd $(EXPORT_TREE)/$(LIBDIR); \
$(RM) $(soname); \
ln -s $(lib) $(soname); \
$(RM) $(libname); \
ln -s $(soname) $(libname); \
)
clean::
$(RM) $(lib)
endif
==================================================================
But I get the another problem after I type "make export"
File omnicpp hasn't changed.
make[4]: Leaving directory `/home/omni/src/tool/omniidl/cxx/cccp'
(set -x; \
rm -f _omniidlmodule.so.0.1; \
g++ -fhandle-exceptions -Wall -Wno-unused -fPIC -shared -o _omniidlmodul
e.so.0.1 -Wl,-soname,_omniidlmodule.so.0 \
-L../../../../lib/x86_osr5 \
y.tab.o lex.yy.o idlerr.o idlutil.o idltype.o idlrepoId.o idlscope.o idle
xpr.o idlast.o idlvalidate.o idldump.o idlconfig.o idlpython.o \
)
+ rm -f _omniidlmodule.so.0.1
+ g++ -fhandle-exceptions -Wall -Wno-unused -fPIC -shared -o _omniidlmodule.so.0
.1 -Wl,-soname,_omniidlmodule.so.0 -L../../../../lib/x86_osr5 y.tab.o lex.yy.o i
dlerr.o idlutil.o idltype.o idlrepoId.o idlscope.o idlexpr.o idlast.o idlvalidat
e.o idldump.o idlconfig.o idlpython.o
command line: warning: -o specifies multiple output file names
_omniidlmodule.so.0: fatal error: cannot open file for reading
collect2: ld returned 1 exit status
make[3]: *** [_omniidlmodule.so.0.1] Error 1
make[3]: Leaving directory `/home/omni/src/tool/omniidl/cxx'
make[2]: *** [export] Error 1
make[2]: Leaving directory `/home/omni/src/tool/omniidl'
make[1]: *** [export] Error 1
make[1]: Leaving directory `/home/omni/src/tool'
make: *** [export] Error 1
I don't know how to write a correct script to build .so for SCO.
Who can help me?
Thanks a lot.
tony lam.