开发者

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 su开发者_运维技巧pport 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!


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


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"

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜