I need to call the omniORB's DLLs from a 64-Bit-process and as I get it I need to compile those DLLs as 64-Bit.
omniORB seems to support 64-Bit in general, but there are no configuration files included for the make-process (*.mk)... so I guess I have to create one of my own...
Has anyone already tried that yet? And: Is it that "easy" to run the ORB in 64-Bit-mode (assumed there is a way I create these DLLs) or are there any other traps I don't think of right now? :)
Thanks in advance!
On Jan 30, 2018 Duncan Grisby the omniORB maintainer replied to the post "Windows 64 bit Build Troubles" on the omniORB user mailing list with this:
Don't follow random ancient answers on Stackoverflow.
If you want to build a 64 bit omniORB, you must have a 64 bit Python. Read README.win32.txt. Do EXACTLY what it says. That is what I do, and it works perfectly.
Link: omni-ORB Mailing list post
In omniORB 4.1.7 README.win32.txt line#50, there is this guidance: "Note that although there are many references to "win32", everything works on 64 bit Windows platforms. There is no separate "win64" platform in the build environment."
There is a section titled "Bulding omniORB from the source files"
Recently I compiled omniORB 4.1.2 for MSVC 2010 x64. I followed instructions from omniORB with small modifications:
Download omniORB-4.1.2.tar.gz (only sources, without omnipython and precompiled libraries) to a directory and extract it.
Install Python for x64 (ex. c:\python27). Add c:\python27 to PATH environment variable. Note that omnipython does not work, since it's compiled in 32bit mode.
Install cygwin (ex. c:\cygwin). Add c:\cygwin\bin to PATH environment variable.
In omniORB\mk\platforms create x86_win64_vs_10.mk (just copy content of x86_win32_vs_9.mk), then modify the content a bit:
PYTHON = /cygdrive/c/Python27/python
# Use the following set of flags to build and use multithreaded DLLs
#
MSVC_DLL_CXXNODEBUGFLAGS = -MD -EHs -GS -GR -Zi -nologo
MSVC_DLL_CXXLINKNODEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
MSVC_DLL_CNODEBUGFLAGS = -MD -GS -GR -Zi -nologo
MSVC_DLL_CLINKNODEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
#
MSVC_DLL_CXXDEBUGFLAGS = -MDd -EHs -RTC1 -GS -GR -Zi -nologo
MSVC_DLL_CXXLINKDEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
MSVC_DLL_CDEBUGFLAGS = -MDd -RTC1 -GS -GR -Zd -Zi -nologo
MSVC_DLL_CLINKDEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
#
# Or
#
# Use the following set of flags to build and use multithread static libraries
#
MSVC_STATICLIB_CXXNODEBUGFLAGS = -MD -EHs -GS -GR -Zi -nologo
MSVC_STATICLIB_CXXLINKNODEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
MSVC_STATICLIB_CNODEBUGFLAGS = -MD -GS -GR -Zi -nologo
MSVC_STATICLIB_CLINKNODEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
MSVC_STATICLIB_CXXDEBUGFLAGS = -MDd -EHs -RTC1 -GS -GR -Zi -nologo
MSVC_STATICLIB_CXXLINKDEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
MSVC_STATICLIB_CDEBUGFLAGS = -MDd -RTC1 -GS -GR -Zi -nologo
MSVC_STATICLIB_CLINKDEBUGOPTIONS = -nologo -manifest -DEBUG -MACHINE:X64
In omniORB\config\config.mk add line platform = x86_win64_vs_10
and comment out all the other platforms
Open "Visual Studio x64 Win64 Command Prompt", cd to omniORB\src, do make export
I hope this information will help
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With