如何为 64 位 Windows 编译omniORB?

发布于 2024-09-13 07:49:10 字数 249 浏览 5 评论 0原文

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

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

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

提前致谢!

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 support 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!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅的被狗咬 2024-09-20 07:49:10

最近我为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
    
    # 使用以下标志集来构建和使用多线程 DLL
    #
    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
    #
    # 或者
    #
    # 使用以下标志集来构建和使用多线程静态库
    #
    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. Open “Visual Studio x64 Win64 命令提示符”,cd 到omniORB\src,执行make export

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

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

微凉 2024-09-20 07:49:10

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

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

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

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

在omniORB 4.1.7 自述文件中.win32.txt line#50,有这样的指导:“请注意,虽然有很多对“win32”的引用,但一切都可以在 64 位 Windows 平台上运行。构建环境中没有单独的“win64”平台”。

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

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"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文