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                a...@cryptomilk.org


Reply via email to