Me gustaría crear una aplicación C ++, que use OpenCV, ejecutándose en un servidor. Para hacer esto, necesito compilar la aplicación c ++ en mi servidor. Pero, ¿cómo puedo obtener mis bibliotecas OpenCV (y otras bibliotecas) en el servidor? ¿O hay otra forma de ejecutar mi aplicación C ++ en mi servidor? es decir, compilar en mi propia computadora en lugar de en un servidor.

¡Espero que puedas ayudarme! ¡Gracias!

0
Rogier 21 may. 2012 a las 16:55

1 respuesta

La mejor respuesta

Si el servidor tiene la misma arquitectura (por ejemplo, Intel x86 de 32 bits o ambos PowerPC), debería poder compilar en su propia caja y ejecutarlo en el servidor.

Además, como señala jlengrand a continuación, puede configurar su computadora con un compilador cruzado para casi cualquier arquitectura de destino. Eso básicamente le permite escribir un comando de una sola línea para configurar su entorno de compilación, luego, cuando invoque g ++ o lo que sea que esté usando, se construirá para la arquitectura para la que está hecho el compilador cruzado.

No sé mucho sobre OpenCV, pero siempre que lo tengas configurado para " vincular estáticamente " las bibliotecas, entonces deberían ser parte del ejecutable resultante. Entonces, el ejecutable tendría todas las bibliotecas y podría ejecutarse en cualquier computadora con la arquitectura de su computadora.

Tenga cuidado con los enlaces dinámicos , ya que significaría que las propias bibliotecas tenían que estar presentes y localizables en el servidor cuando ejecuta el ejecutable (el enlace dinámico significa bibliotecas compartidas, donde no son parte del ejecutable y deben proporcionarse por separado. Si bien la vinculación dinámica es realmente mejor, ya que las cosas se pueden compartir y actualizar, es más complejo para la implementación).

0
John Humphreys 21 may. 2012 a las 17:23
2
También voto por compilar en su computadora y ejecutarlo en el servidor. Incluso puede compilar para diferentes arquitecturas utilizando compiladores dedicados. Lo hice en el pasado para plataformas ARM. Simplemente tendrás que copiar archivos a tu servidor, funciona a las mil maravillas :)
 – 
jlengrand
21 may. 2012 a las 17:05
Ese es un buen punto. Puede realizar la compilación cruzada para casi cualquier cosa, la gente lo hace cuando trabaja con sistemas integrados todo el tiempo.
 – 
John Humphreys
21 may. 2012 a las 17:07
¡Gracias por tu respuesta! Esto suena mucho más factible de lo que tenía en mente.
 – 
Rogier
21 may. 2012 a las 17:34