Red de conocimiento informático - Conocimiento informático - Cómo compilar y configurar ACE

Cómo compilar y configurar ACE

ACE es un paquete de desarrollo de programación de red C de código abierto muy útil. Su uso favorece la solidez, la portabilidad y la relativa simplicidad del código que usar la API directamente.

Se estima que cuando todos entraron en contacto con ACE por primera vez, tuvieron cierto grado de dificultad y tal vez se dieron por vencidos a mitad de camino. Este es mi resumen de los dos días que aprendí ACE. no escrito, pero quiero estudiar ACE para ti. Seguramente entenderás lo que sigue.

1. Página de inicio oficial de ACE: mand require... ", el punto" es "

Aparecerá el siguiente error

Si aparece "No se puede abrir". incluir archivo: 'ace/SOCK_Acceptor.h': No existe tal archivo o directorio"

Project-Settings-C/C: Preprocesador, ruta de inclusión adicional: D:/ACE_wrappers

Si hay "Debe vincular bibliotecas multiproceso cuando utilice ACE (verifique la configuración de su proyecto)”

Configuración del proyecto-C/C: Generación de código-Usar biblioteca en tiempo de ejecución: Depurar Dll multiproceso

Si hay "error C2065: 'ACE_ERROR': identificador no declarado"

error C2065: 'ACE_DEBUG': identificador no declarado

#include "ace/Log_Msg.h "

error C4716: 'ace_main_i': debe devolver un valor

Agregar en principal

devolver 0;

"error LNK2001: símbolo externo sin resolver " __declspec(dllimport) int __cdecl”

Project-Settings-Link-Input: Objeto/Módulo de biblioteca: Agregar ruta de biblioteca adicional aced.lib: D:\ACE_wrappers\ace

Cliente de compilación Problemas encontrados en

1. error C2039: 'sprintf': no ​​es miembro de 'ACE_OS'

#include "ace/OS_NS_stdio.h"

2. error C2039: 'strlen': no ​​es miembro de 'ACE_OS'

#include "ace/OS_NS_string.h"

3. error C2059: sintaxis error: '?'

El error está en esta oración: ACE_DEBUG((LM_DEBUG,?Usage egX lt; hostnamegt; lt; port_numbergt;\n?));

¿Cambiar? a "

4. La biblioteca de vínculos dinámicos aced.dll no se puede encontrar en la ruta especificada

Agregue D a la variable del sistema RUTA: \ACE_wrappers\bin

> Inclusión estática:

Proyecto-Configuración-

C/C: agregado a la definición del preprocesador, ACE_AS_STATIC_LIBS

Ejemplo 1: el servidor se genera después de la compilación

server.exe 16K serverd.exe 97K servers.exe 124K serversd.exe 669K

(servers.exe es más adecuado para publicación)

El cliente del ejemplo 2 se genera después de la compilación

client.exe 16K clientd.exe 97K client.exe 124K clientd.exe 669K

(clients.exe es más adecuado para publicación)

Clientes de prueba 127.0.0.1 1919

servidores 1919

Lo siguiente es lo que escribió la Maestra Mavida: (Publicado desde huihoo)

Publicado el: 31/03/2003 - 04:24

Una pequeña traducción, espero que pueda ser de ayuda para todos.

De hecho, no me atrevo a llamarlo traducción, la calidad es muy mala, veámoslo :)

Utilice Microsoft Visual C para generar e instalar ACE en la plataforma win32. :

Nota: Hay algunos problemas con el uso de MSVC5.0 y Service Pack 3. En el pasado, algunos usuarios usaban buen código en sp2 pero causaba algunos problemas en sp3. Gracias a la cuidadosa búsqueda de Bill, este misterioso problema quedó resuelto. ¿Respuesta? (Oh, aquí hay una buena respuesta...) Esto puede deberse a que hay varias versiones de sp3. Las versiones anteriores de sp3 tenían algunos errores, y las versiones posteriores corrigieron estos errores. Descargado del sitio web de Microsoft en junio de 1998. La versión 16 de sp3. es una buena versión. Si X03-50158 forma parte del número de serie de aquellos discos que tienen sp3, entonces esas versiones también son buenas. Sin embargo, independientemente de cualquier versión de sp3, la implementación de STL tiene errores. Para obtener más información, visite /vc_fixes.html. Gracias a Ben Eng por corregir estos errores.

El SP4 actual (con suerte, solo una versión) ha solucionado el problema del punto muerto en STL.

Ya no daremos soporte activo a MSVC 4.X y versiones anteriores de ACE que pueden funcionar con estos compiladores, pero es posible que se pierdan algunos beneficios.

1. Comprima el paquete de distribución de ACE en un directorio, lo que generará un directorio que contiene ACE_wrappers en ese directorio. Los siguientes pasos suponen que el paquete de distribución de ACE se extrae en ACE_ROOT=C:\ACE_wrappers, por lo que ACE existirá en el directorio ACE_ROOT\ace.

2. Cree un archivo en el directorio ACE_ROOT\ace, llamado config.h, y su contenido es:

#include "ace/config-win32.h"

3. Cargue el archivo del proyecto ACE (ACE_ROOT\ace\ace.dsw) en VC

4. Cada proyecto contendrá múltiples configuraciones, estas configuraciones son Debug/Release, MFC/Una combinación de. opciones como versiones de biblioteca no MFCh y estática/dinámica. Determine qué construcciones necesita (por ejemplo, el código de depuración requiere una versión de depuración de ACE). Todas estas configuraciones diferentes pueden brindarle algunas comodidades. Puede usar diferentes modos para construir aplicaciones con diferentes configuraciones o cambiar las diferentes configuraciones en NT cambiando ace\config.h.

Nota: si utiliza enlaces dinámicos, asegúrese de agregar ACE_ROOT\bin a la variable de entorno de ruta; de lo contrario, tendrá problemas para encontrar ace.dll o aced.dll al ejecutar el programa.

5. Si está compilando ACE en Windows NT o Windows 2k, puede comenzar a compilarlo inmediatamente sin ningún cambio. Si está compilando en Windows 9x/me, debe compilarlo en

Agregue una línea antes del bloque #include en ACE_ROOT\ace\config.h.:

#define ACE_HAS_WINNT4 0

Esto eliminará algunos WinNT/Win2K en ACE exclusivo código.

6. Si desea utilizar el archivo de encabezado C estándar que viene con MSVC (el iostream definido por C Standard Draft, cstdio...), debe estar en

ACE_ROOT. \ace Agregue una línea antes del bloque #include de \config.h.:

#define ACE_HAS_STANDARD_CPP_LIBRARY 1

7. Si necesita usarlo con MFC, agregue la siguiente definición. a su archivo config.h. Nota: si desea generar un nuevo hilo, debe asegurarse de que se use el indicador THR_USE_AFX para generar el hilo.

#define ACE_HAS_MFC 1

De forma predeterminada, el proyecto ACE utiliza la versión DLL dinámica del tiempo de ejecución de MSVC. También puede optar por utilizar la versión estática (LIB) de ACE que sí lo hace. No me importa la versión de la biblioteca en tiempo de ejecución. La razón por la que elegimos vincularnos sólo con las bibliotecas de tiempo de ejecución dinámico es que estas bibliotecas se instalarán en casi todas las máquinas NT y podemos reducir el tamaño del código. Si desea que ACE interactúe con una versión estática de MFC, puede definir ACE_USES_STATIC_MFC en config.h. Sin embargo, si desea vincular estáticamente todas las bibliotecas (incluida la biblioteca de tiempo de ejecución de MSVC), debe modificar los archivos del proyecto usted mismo.

8. Si desea crear una versión estática de ACE, debe definir ACE_AS_STATIC_LIBS en config.h. Esta macro también debe definirse en proyectos de aplicaciones que deseen utilizar la versión estática de ACE.

Como opción, puede agregar una línea antes de la

instrucción #include en ACE_ROOT\ace\config.h.:

#define ACE_NO_INLINE

p>

para eliminar la inserción de funciones y así reducir el tamaño de la biblioteca estática (y su código de tiempo de ejecución).

9. Reglas de nomenclatura para las bibliotecas ACE DLL y LIB:

Utilizamos las siguientes reglas para utilizar claramente los archivos ACE DLL y LIB de MSVC.

"Nombre de biblioteca/DLL" (¿es una biblioteca estática? "s" : "") (¿contiene información de depuración? "d" : "") {".dll"|".lib"}

Puede encontrar más información sobre el uso de ACE en un entorno MSVC aquí.

------------------------------------------- ----- ----------------------------

1. Para instalar TAO, necesitas compilar. e instale ACE primero.

2. Para conocer los pasos de compilación e instalación de ACE, consulte http://www.cs.wustl.edu/~schmidt/ACE_wrappers/ACE-INSTALL.html. Para conocer los pasos de compilación e instalación de TAO, consulte http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO/TAO-INSTALL.html. Si su dominio del inglés es aceptable, lo mejor es leer estos dos documentos directamente. En última instancia, los documentos chinos son sólo una "medida provisional"; el chino no es muy adecuado para expresiones lógicas.

Pero aun así compilé algunos de los párrafos de la siguiente manera (VC 6.0 ACE-5.2.1 TAO-1.2.1):

Compilación e instalación de ACE

Reglas generales

Muchas características de ACE se pueden modificar definiendo algunas macros en $ACE_ROOT/ace/config.h. Estas macros siempre deben aparecer antes de incluir el archivo de configuración de su plataforma.

Sin embargo, si desea deshacer/redefinir macros definidas en un archivo de configuración específico de la plataforma, #undef debería aparecer después del archivo de configuración.

Si planea compilar ACE en múltiples plataformas, puede considerar clonar el árbol fuente.

Pasos:

1. Descomprima el archivo de versión de ACE en un directorio, donde se creará el directorio ACE_wrappers que contiene todos los archivos. En los siguientes pasos, se hará referencia al directorio ACE_wrappers con el nombre ACE_ROOT.

2. Cree un archivo llamado config.h en el directorio ACE_ROOT\ace e incluya:

#include “ace/config-win32.h”

3. Ahora cargue el archivo del proyecto ACE (ACE_ROOT\ace\ace.dsw).

4. Cada proyecto contiene varias configuraciones diferentes (se pueden combinar versiones de biblioteca de depuración/liberación, MFC/no MFC, estática/dinámica). Puede elegir la configuración que necesita o utilizar ace/config.h para realizar ajustes.

Nota: Si usa una biblioteca de vínculos dinámicos, asegúrese de incluir ACE_ROOT\bin en su RUTA cuando ejecute un programa que use ACE.

5. Si la plataforma de su sistema es WinNT o 2000, puede comenzar a compilar sin ningún cambio. Si es Windows 9x/Me, debe agregar antes de la declaración #include en ACE_ROOT\ace\config.h:

#define ACE_HAS_WINNT4 0

6. use el encabezado C estándar de MSVC (iostream, cstdio...), agregue antes de la declaración #include en ACE_ROOT\ace\config.h:

#define ACE_HAS_STANDARD_CPP_LIBRARY 1

7. match Para usar ACE con MFC, agregue la siguiente definición:

#define ACE_HAS_MFC 1

Tenga en cuenta que si desea generar un nuevo hilo a través de CWinThread, asegúrese de configurar THR_USE_AFX. De forma predeterminada, todos los proyectos ACE utilizan la versión DLL de la biblioteca de ejecución de MSVC. No obstante, aún puede optar por utilizar la versión estática (LIB) de la biblioteca ACE.

Si desea vincular MFC a ACE como una biblioteca estática, puede definir ACE_USES_STATIC_MFC en el archivo config.h. Pero si desea vincular todo estáticamente (incluida la biblioteca de tiempo de ejecución de MSVC), debe modificar el archivo del proyecto ACE usted mismo.

8. La versión estática de ACE se compila definiendo ACE_AS_STATIC_LIBS. Esta macro también debe usarse en proyectos de aplicaciones que se vinculan con la biblioteca ACE estática.

También puede agregar

#define ACE_NO_INLINE

al archivo config.h para cancelar la inserción de funciones y reducir el tamaño de las bibliotecas estáticas (y su programa ejecutable). ) tamaño.

9. Esquema de nombres de ACE DLL y LIB:

"Nombre de biblioteca/DLL" (¿Es una biblioteca estática? "s" : "") (¿Está habilitada la depuración? " d": "") {".dll"|".lib"}

10. Compile después de completar la configuración. Seleccione la versión dll, el archivo dll compilado está en ACE_ROOT\bin y el archivo lib correspondiente está en ACE_ROOT\ace.

Prueba ACE

Cada programa de prueba está en ACE_ROOT\tests. También hay un archivo de espacio de trabajo que se puede utilizar para compilar todos los programas de prueba (tests.dsw).

Una vez que haya compilado todos los programas de prueba (se puede utilizar la compilación por lotes), puede ejecutar el script perl run_test.pl o el archivo por lotes run_tests.bat en el directorio de pruebas para ejecutar todas las pruebas.

Compilación e instalación de TAO

Asegúrate de que el CL.EXE de VC esté en tu ruta de acceso. Establezca la variable de entorno ACE_ROOT o TAO_ROOT. Por ejemplo:

set ACE_ROOT=C:\ACE_wrappers

TAO se coloca mejor en ACE_wrappers (este también es el valor predeterminado).

1. Asegúrese de que ACE haya sido compilado e instalado.

2. Asegúrese de que ACE_wrappers\bin aparezca en "Directorios ejecutables" en "Herramientas|Opciones". Esta configuración es necesaria si utiliza el compilador TAO_IDL en MSVC.

3. Cargue tao\TAO.dsw y compile la biblioteca TAO.

4. Para compilar las pruebas de Cubit, cargue performance-tests\Cubit\TAO\IDL_Cubit\IDL_Cubit.dsw y compile el cliente y el servidor.

TAOACE.dsw

TAOACE.dsw es un archivo de espacio de trabajo de Visual C 5.0/6.0. Los proyectos que carga incluyen bibliotecas de servicios ACE, TAO, TAO_IDL (compilador), gperf y orb. así como algunos programas ejecutables individuales (como Naming Service, etc.). Se puede utilizar para compilar todos los archivos utilizados para compilar/ejecutar aplicaciones TAO.

3. Elegí compilar la versión dll (Versión) y definí "#define ACE_HAS_STANDARD_CPP_LIBRARY 1" en el archivo config.h de ACE. Después de la compilación, el tamaño de ace.dll que obtuve es 1,13 MB, el tamaño correspondiente de ace.lib es 1,77 MB, el tamaño de TAO.dll es 1,47 MB ​​y el tamaño correspondiente de TAO.lib es 2,74 MB.

Todos los archivos son sobre MB, incluidos los programas fuente, los archivos intermedios generados por compilación, etc., pero no compilé algunos ejemplos ni servicios.

¡Te deseo éxito en tus estudios!

Mavida

--------------------------------- - -

Integrar ACE con VC6

1. Abrir Herramientasgt; Directorios

Agregar el siguiente contenido:

Archivo ejecutable:

C:\ACE_wrappers\bin

Incluir archivo:

C:\ACE_wrappers\

C:\ACE_wrappers\TAO

C:\ACE_wrappers\TAO\orbsvcs

Archivos de biblioteca:

C:\ACE_wrappers\ace

C:\ACE_wrappers\ TAO\tao

C:\ACE_wrappers\TAO\orbsvcs\orbsvcs

Archivos fuente:

C:\ACE_wrappers\ace

C:\ ACE_wrappers\TAO\tao

C:\ACE_wrappers\TAO\orbsvcs\orbsvcs

2. Agregue C:\ACE_wrappers\bin a la ruta de la variable de entorno del sistema

3. Establecer variables del sistema

ACE_ROOT=C:\ACE_wrappers

TAO_ROOT=C:\ACE_wrappers\TAO