2010-08-05 15 views
9

Ho bisogno di chiamare le DLL di omniORB da un processo a 64 bit e, come ho capito, ho bisogno di compilare quelle DLL come 64 bit.Come posso compilare omniORB per Windows a 64 bit?

omniORB sembra supporto a 64 bit, in generale, ma non ci sono file di configurazione incluso per il make-processo (* .mk) ... quindi credo che devo crearne uno tutto mio ...

Qualcuno lo ha già provato? E: è "facile" eseguire l'ORB in modalità 64 bit (presupposto che esista un modo per creare queste DLL) o ci sono altre trappole che non penso in questo momento? :)

Grazie in anticipo!

+0

Probabilmente otterresti una risposta più veloce sulla mailing list degli utenti di omniORB. –

+0

Penso che devi solo cambiare il percorso del compilatore (se ne stai utilizzando uno diverso su quella piattaforma) e i parametri (aggiungi -m64 per 64 bit). Qual è la piattaforma? Linux x86_64? O Solaris SPARC 64? –

risposta

4

Recentemente ho compilato omniORB 4.1.2 per MSVC 2010 x64. Ho seguito instructions from omniORB con piccole modifiche:

  1. Scarica omniORB-4.1.2.tar.gz (uniche fonti, senza omnipython e librerie precompilate) in una directory ed estrarlo.

  2. Installa Python per x64 (ad esempio c: \ python27). Aggiungi c: \ python27 alla variabile d'ambiente PATH. Si noti che omnipython non funziona, dal momento che è compilato in modalità a 32 bit.

  3. Installare cygwin (ad esempio c: \ cygwin). Aggiungi c: \ cygwin \ bin alla variabile di ambiente PATH.

  4. In omniORB \ mk \ piattaforme creano x86_win64_vs_10.mk (solo contenuto di x86_win32_vs_9.mk copia), quindi modificare il contenuto un po ':

    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 aggiungere linea platform = x86_win64_vs_10 e commentare tutte le altre piattaforme

  6. Open "Visual Studio x64 Win64 Prompt dei comandi", cd per omniORB \ src, fare make export

Spero che questa informazione possa essere d'aiuto