问题
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.
回答1:
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 :)
回答2:
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
- A C compiler
- CMake >= 2.6.0.
- openssl >= 0.9.8 or
- gcrypt >= 1.4
optional: - libz >= 1.2
- Download the source zip,
- create an out-of-sourcetree build directory,
- 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.
回答3:
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.
回答4:
Additionally make sure to use libssh version-0.5.0 or older for building a VS2010 application as the newer libssh versions need VS2012.
来源:https://stackoverflow.com/questions/8204259/how-to-use-libssh-in-vs10