Visual c++ 如何为64位Windows编译omniORB?

Visual c++ 如何为64位Windows编译omniORB?,visual-c++,64-bit,corba,Visual C++,64 Bit,Corba,我需要从64位进程调用omniORB的DLL,当我得到它时,我需要将这些DLL编译为64位 omniORB似乎通常支持64位,但make进程(*.mk)中没有包含任何配置文件。。。所以我想我必须创造一个我自己的 有人试过了吗?还有:在64位模式下运行ORB“容易”吗(假设我有一种创建这些DLL的方法),还是有其他我现在想不到的陷阱 提前谢谢 最近我为MSVC 2010 x64编译了omniORB 4.1.2。我随后做了一些小修改: 将omniORB-4.1.2.tar.gz(仅限源代码,不含om

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

omniORB似乎通常支持64位,但make进程(*.mk)中没有包含任何配置文件。。。所以我想我必须创造一个我自己的

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


提前谢谢

最近我为MSVC 2010 x64编译了omniORB 4.1.2。我随后做了一些小修改:

  • 将omniORB-4.1.2.tar.gz(仅限源代码,不含omnipython和预编译库)下载到一个目录并解压缩它

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

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

  • 在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
    
  • 在omniORB\config\config.mk中添加行
    platform=x86\u win64\u vs\u 10
    ,并注释掉所有其他平台

  • 打开“Visual Studio x64 Win64命令提示符”,cd到omniORB\src,执行导出操作


  • 我希望这些信息将对2018年1月30日omniORB维护人员Duncan Grisby回复omniORB用户邮件列表上的“Windows 64位构建问题”一文有所帮助:

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

    如果要构建64位omniORB,必须使用64位Python。 请阅读README.win32.txt。照上面说的做。我就是这么做的, 而且它工作得很好

    链接:

    在omniORB 4.1.7中,有这样一条指导:“注意,尽管有很多对“win32”的引用,但所有东西都可以在64位Windows平台上工作。在构建环境中没有单独的“win64”平台。”


    在omniORB用户邮件列表中有一个标题为

    的部分,您可能会得到更快的答案。我认为您只需更改编译器路径(如果您在该平台上使用不同的路径)和参数(添加-m64表示64位)。站台是什么?Linux x86_64?还是Solaris SPARC 64?