How can I compile omniORB for 64-Bit Windows?
Asked Answered
A

2

12

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!

Allix answered 5/8, 2010 at 8:11 Comment(2)
You'd probably get a faster answer on the omniORB users mailing list.Stolzer
I think you just have to change the compiler path(if you are using a different one on that platform) and parameters (add -m64 for 64 bit) . What is the platform? Linux x86_64 ? Or Solaris SPARC 64 ?Wrung
I
6

Recently I compiled omniORB 4.1.2 for MSVC 2010 x64. I followed instructions from omniORB with small modifications:

  1. Download omniORB-4.1.2.tar.gz (only sources, without omnipython and precompiled libraries) to a directory and extract it.

  2. 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.

  3. Install cygwin (ex. c:\cygwin). Add c:\cygwin\bin to PATH environment variable.

  4. 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
    
  5. In omniORB\config\config.mk add line platform = x86_win64_vs_10 and comment out all the other platforms

  6. Open "Visual Studio x64 Win64 Command Prompt", cd to omniORB\src, do make export

I hope this information will help

Inexperience answered 10/10, 2012 at 14:52 Comment(0)
R
1

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"

Runck answered 4/5, 2020 at 16:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.