Как мне скомпилировать omniORB для 64-битной Windows? - PullRequest
9 голосов
/ 05 августа 2010

Мне нужно вызвать библиотеки omniORB из 64-битного процесса, и по мере их получения мне нужно скомпилировать эти библиотеки как 64-битные.

omniORB, похоже, в целом поддерживает 64-бит, но для make-процесса не включены файлы конфигурации (* .mk) ... поэтому я думаю, мне нужно создать один из моих ...

Кто-нибудь уже пробовал это? И еще: «так просто» запустить ORB в 64-битном режиме (предполагается, что я создаю эти библиотеки DLL) или есть какие-то другие ловушки, о которых я сейчас не думаю? :)

Заранее спасибо!

1 Ответ

5 голосов
/ 10 октября 2012

Недавно я скомпилировал omniORB 4.1.2 для MSVC 2010 x64.Я следовал инструкциям от omniORB с небольшими изменениями:

  1. Загрузите omniORB-4.1.2.tar.gz (только источники, без omnipython и предварительно скомпилированных библиотек) в каталоги извлеките его.

  2. Установите Python для x64 (например, c: \ python27).Добавьте c: \ python27 в переменную окружения PATH.Обратите внимание, что omnipython не работает, поскольку он скомпилирован в 32-битном режиме.

  3. Установите cygwin (например, c: \ cygwin).Добавьте c: \ cygwin \ bin в переменную среды PATH.

  4. В omniORB \ mk \ platform создайте 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 ", перейдите к omniORB \ src, выполните make export

Надеюсь, эта информация поможет

...