Question

How can I implement libssh as a library my compiler will recognize? I'm using Visual Studio 2010 C++, and I've included the Boost library with no problems, but the process I did with Boost is strange, I can tell libssh will be different.

I really don't want to do a DLL file, I want one executable, however I know that DLL files can be embedded inside of executables through .rc scripting. (Then extract and load)

I've never had to include a library except for Boost into any of my projects, I feel like I should really know how to do this. Please note this is libssh not libssh2. Thanks.

Was it helpful?

Solution

Even if the post is old i have an answer, maybe it can be helpful for someone dropping here.

To implement libssh into Visual Studio 2010.

You will need more than just one library you will need 3 to be sure everything will compile well. First download the last version of libssh After this you will need 2 more dll, to be allow to compile without issue:

  • libeay32.dll
  • zlib1.dll

For the first one it wasn't recognize very well for me, so i just took the full library of openssl openssl-0.9.8k_WIN32.zip

After you have dowloaded those files place them into the rigth place in Visual studio.

go to

  • C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC

To open the visual studio for the language C -> VC Then :

  • Copy the folder with the include in C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include paste the folder libssh\include (containing all .h file)
  • Copy the file ssh.lib into C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
  • Copy ssh.dll C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin

Copy libeay32.dll and zlib1.dll into the bin folder. Or if you downloaded openssl which I recommend then you just do the same proces ass for lib ssh just dont forget to copy also the .exe file into the bin folder with the dll.

It is not finished yet after that you'll have to link the libraries into the compiler of your project.

Project -> projectName properties a windows open with properties then go -> Configuration Properties -> Linker -> input -> Additional Dependencies.

Now add the following libraries into the dependencies

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

And then it was working very well

I hope that it can help someone dropping by here :)

OTHER TIPS

The standard windows installer does not come with static libs.

IMPORTANT You'll end up with openssl dynamically linked (zlib optionally) anyway. Are you sure you want this?

In case you do, you need

optional: - libz >= 1.2

  1. Download the source zip,
  2. create an out-of-sourcetree build directory,
  3. start cmake-gui, tweak
    • select source and build dirs
    • click configure (e.g. I chose VS2010 Win64 build files)
    • open VStudio, tweak and build as static library (instead of DLL)

Hope this will help you get started.

You can easily create a static library on Windows. Just set WITH_STATIC_LIB to ON during the cmake configure step.

NOTE: libssh is licensed under LGPL.

Additionally make sure to use libssh version-0.5.0 or older for building a VS2010 application as the newer libssh versions need VS2012.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top