如何为64位Windows编译omniORB?

时间:2010-08-05 08:11:28

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

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

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

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

提前致谢!

2 个答案:

答案 0 :(得分:5)

最近我为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

  7. 我希望这些信息能够提供帮助

答案 1 :(得分:0)

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平台上运行。构建环境。”

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

的部分