2011-11-20 15 views
10

¿Cómo puedo implementar libssh como una biblioteca que mi compilador reconocerá? Estoy usando Visual Studio 2010 C++, y he incluido la biblioteca de Boost sin problemas, pero el proceso que hice con Boost es extraño, puedo decir que libssh será diferente.Cómo usar libssh en VS10

Realmente no quiero hacer un archivo DLL, quiero un ejecutable, sin embargo, sé que los archivos DLL se pueden incrustar dentro de los ejecutables a través de scripts .rc. (Luego extrae y carga)

Nunca he tenido que incluir una biblioteca excepto Boost en ninguno de mis proyectos, siento que realmente debería saber cómo hacerlo. Tenga en cuenta que esto es libssh no libssh2. Gracias.

+0

Recomendar leer el siguiente guión https://stackoverflow.com/questions/495795/how-do-i-use-a-third-party-dll-file-in-visual-studio-c – Harvee

Respuesta

12

Incluso si la publicación es antigua, tengo una respuesta, tal vez pueda ser útil para alguien que se presente aquí.

Implementar libssh en Visual Studio 2010.

Usted necesitará algo más que una biblioteca se necesitan 3 para asegurarse que todo se compilará bien. Primero descarga la última versión de libssh Después de esto, se necesitan 2 más DLL, que permitirá compilar sin problemas:

  • libeay32.dll
  • zlib1.dll

Para la primera no me reconocieron muy bien, así que acabo de tomar la biblioteca completa de openssl openssl-0.9.8k_WIN32.zip

Después de que haya descargado esos archivos, colóquelos en el lugar correcto en Visual Studio.

ir a

  • C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC

Para abrir el Visual Studio para el lenguaje C -> VC continuación:

  • Copie la carpeta con el include en C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10. 0 \ VC \ include pegar la carpeta libssh \ include (que contiene todos los archivos .h)
  • Copia el archivo ssh.lib en C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ lib
  • Copia ssh.dllC: \ archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin

Copia libeay32.dll y zlib1.dll en la carpeta bin. O si descargó openssl, que recomiendo, entonces solo hace el mismo proceso para lib ssh, simplemente no olvide copiar también el archivo .exe en la carpeta bin con el dll.

Aún no está terminado, después tendrá que vincular las bibliotecas al compilador de su proyecto.

Proyecto -> projectName propiedades de una ventana abierta con propiedades y luego ir -> Configuración Propiedades -> Enlazador -> Entrada -> Dependencias adicionales.

Ahora agregue las siguientes bibliotecas en las dependencias

; ssh.lib; ssleay32.lib; libeay32.lib;

Y entonces estaba funcionando muy bien

espero que pueda ayudar a alguien a dejar caer por aquí :)

+1

Gracias por su publicación; esta es definitivamente la guía más completa que he visto para libssh. – Saustin

+0

¡Qué ahorro de tiempo! – TekuConcept

2

El instalador de Windows estándar no no vienen con librerías estáticas.

IMPORTANTE Terminará con openssl vinculado dinámicamente (zlib opcionalmente) de todos modos. ¿Estás seguro de que quieres esto?

En caso de hacerlo, es necesario

opcional: - libz> = 1,2

  1. Descarga el zip fuente,
  2. crear una toma de of-sourcetree compilación directorio,
  3. empezar cmake-gui, ajustar
    • seleccione los directorios de origen y compilación
    • haga clic en configurar (por ej. Elegí VS2010 Win64 construir archivos)
    • abierta VStudio, ajustar y construir la biblioteca estática (en lugar de DLL)

la esperanza que esto ayudará a empezar.

+0

[Aquí está una compilación ** estática ** rápida y sucia que hice con VS2010 en XP64] (http://downloads.sehe.nl/stackoverflow/libssh-static-vs2010.zip); tenga en cuenta que deshabilitó el soporte de LIBZ (porque soy perezoso :)) aún podría ayudarle a comenzar (también había un error de inclusión en log.c). Observe cómo esto es rápido y sucio porque (a) no cambié los nombres de los directorios, todavía se llaman 'compartidos', y vinculé las aplicaciones de muestra a la biblioteca estática de la manera más sucia posible. Tenga en cuenta que aún necesita tener [openssl instalado] (http://www.slproweb.com/products/Win32OpenSSL.html) – sehe

1

Puede crear fácilmente una biblioteca estática en Windows. Simplemente configure WITH_STATIC_LIB en ON durante el paso de configuración de cmake.

NOTA: libssh se licencia bajo LGPL.

0

Además asegúrese de utilizar libssh versión 0.5.0 o más para la construcción de una aplicación VS2010 ya que las versiones más nuevas de libssh necesitan VS2012.