Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I compile omniORB for 64-Bit Windows?

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!

like image 874
Pantonaut Avatar asked Aug 05 '10 08:08

Pantonaut


2 Answers

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"

like image 73
buzz3791 Avatar answered Oct 05 '22 07:10

buzz3791


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

like image 32
nogard Avatar answered Oct 05 '22 09:10

nogard