11

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

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

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

提前致谢!

4

2 回答 2

6

最近我为 MSVC 2010 x64 编译了omniORB 4.1.2。我按照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

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

于 2012-10-10T14:52:48.357 回答
1

在 2018 年 1 月 30 日,omniORB 维护者 Duncan Grisby 回复了omniORB 用户邮件列表上的帖子“Windows 64 位构建问题”:

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

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

链接:omni-ORB 邮件列表帖子

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

有一个标题为“从源文件构建omniORB”的部分

于 2020-05-04T16:02:22.380 回答