On Monday 10 February 2014 20:55:47 Lukasz M wrote:
> Hello,
Hi Lukasz,
> I'm contributor of ffmpeg project. We have support for sftp via libssh
> library.
>
> Recently we got a patch that defines LIBSSH_STATIC before including
> libssh's header.
> This is a link to the full thread on our mailing list
> http://ffmpeg.org/pipermail/ffmpeg-devel/2014-February/153993.html
>
> Patch looks like this:
>
> +#define LIBSSH_STATIC
libssh uses symbol hiding to make the library smaller and export only public
functions. By default the functions define with LIBSSH_API are public and it
is set to
#define LIBSSH_API __declspec(dllimport)
for static linking you need to unset it, so you need LIBSSH_STATIC. Setting
this in a header file is normally a bad idea cause then only static linking is
possible.
> #include <libssh/sftp.h>
>
> This supposed to fix static linking on windows.
> Macro is added unconditionaly and we wonder if using it for
> dynamic libs on windows or outside windows is safe, unsafe or undefined.
LIBSSH_STATIC should only be set on the compiler commandline compiling the
source files which use libssh.
if (WIN32)
set_target_properties(
ffmpeg
PROPERTIES
COMPILE_FLAGS
"-DLIBSSH_STATIC")
endif (WIN32)
Best regards,
-- andreas
--
Andreas Schneider GPG-ID: CC014E3D
www.cryptomilk.org [email protected]