【问题标题】:How can I compile omniORB for 64-Bit Windows?如何为 64 位 Windows 编译omniORB?
【发布时间】:2011-03-25 16:19:28
【问题描述】:

我需要从 64 位进程调用omniORB 的 DLL,当我得到它时,我需要将这些 DLL 编译为 64 位。

omniORB 似乎一般支持 64 位,但没有包含用于 make-process (*.mk) 的配置文件...所以我想我必须创建自己的一个...

有人尝试过吗?并且:在 64 位模式下运行 ORB 是否“容易”(假设有一种方法可以创建这些 DLL)还是我现在没有想到的其他陷阱? :)

提前致谢!

【问题讨论】:

  • 您可能会在 omniORB 用户邮件列表上得到更快的答复。
  • 我认为您只需要更改编译器路径(如果您在该平台上使用不同的编译器路径)和参数(添加 -m64 为 64 位)。平台是什么? Linux x86_64 ?还是 Solaris SPARC 64?

标签: visual-c++ 64-bit corba omniorb


【解决方案1】:

最近我为 MSVC 2010 x64 编译了 omniORB 4.1.2。我跟着instructions from omniORB 做了一些小改动:

  1. 将omniORB-4.1.2.tar.gz(只有源代码,没有omnipython和预编译库)下载到一个目录并解压。

  2. x64 安装 Python(例如 c:\python27)。将 c:\python27 添加到 PATH 环境变量。请注意,omnipython 不起作用,因为它是在 32 位模式下编译的。

  3. 安装 cygwin(例如 c:\cygwin)。将 c:\cygwin\bin 添加到 PATH 环境变量中。

  4. 在omniORB\mk\platforms中创建x86_win64_vs_10.mk(复制x86_win32_vs_9.mk的内容),然后稍微修改一下内容:

    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. 在 omniORB\config\config.mk 添加行 platform = x86_win64_vs_10 并注释掉所有其他平台

  6. 打开“Visual Studio x64 Win64 命令提示符”,cd 到 omniORB\src,执行make export

我希望这些信息会有所帮助

【讨论】:

    【解决方案2】:

    2018 年 1 月 30 日,omniORB 维护者 Duncan Grisby 回复了omniORB 用户邮件列表上的帖子“Windows 64 bit Build Troubles”:

    不要在 Stackoverflow 上随意遵循古老的答案。

    如果你想构建一个 64 位的 omniORB,你必须有一个 64 位的 Python。 阅读 README.win32.txt。完全按照它说的去做。这就是我所做的, 而且效果很好。

    链接:omni-ORB Mailing list post

    在omniORB 4.1.7 README.win32.txt line#50中,有这样的指导:“请注意,虽然有很多提到“win32”,但一切都适用于64位Windows平台。构建环境中没有单独的“win64”平台。”

    有一段标题为"Bulding omniORB from the source files"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      相关资源
      最近更新 更多