[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Function behaves differently when libssh is compiled statically
[Thread Prev] | [Thread Next]
- Subject: Re: Function behaves differently when libssh is compiled statically
- From: Anderson Sasaki <ansasaki@xxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Mon, 1 Feb 2021 08:31:23 -0500 (EST)
- To: petergeorgenm <petergeorgenm@xxxxxxxxxxxxxx>
- Cc: libssh@xxxxxxxxxx
----- Original Message ----- > From: "petergeorgenm" <petergeorgenm@xxxxxxxxxxxxxx> > To: libssh@xxxxxxxxxx > Sent: Monday, February 1, 2021 2:04:18 PM > Subject: Function behaves differently when libssh is compiled statically > > I wrote a simple connection setup following the tutorial: > //main.c > #pragma comment(lib, "user32") > #pragma comment(lib, "Advapi32") > #pragma comment(lib, "Shell32") > #pragma comment(lib, "Ws2_32") > > #include <stdio.h> > #include <libssh/sftp.h> > #include <sys/stat.h> > #include <fcntl.h> > > int main(void){ > int ret_c=0; > int rc; > int port=22; > ssh_session the_session=ssh_new(); > if(the_session==NULL) {printf("1\n"); return -1;} > > ssh_options_set(the_session, SSH_OPTIONS_HOST, "user@1.2.3.4"); > ssh_options_set(the_session, SSH_OPTIONS_PORT, &port); > > rc=ssh_connect(the_session); > if(rc !=SSH_OK) { > ssh_free(the_session); > printf("2, %d\n", rc); > getchar(); > } else { > printf("success\n"); > getchar(); > } > > ssh_disconnect(the_session); > ssh_free(the_session); > return 0; > } > > I used vcpkg to install both static and dynamic versions of libssh, they > reside as follows respectively: > C:\Users\User\vcpkg\installed\x86-windows-static\ > C:\Users\User\vcpkg\installed\x86-windows\ > If I compile the previous code dynamically with: > cl /I C:\Users\User\vcpkg\installed\x86-windows\include main.c /link > C:\Users\User\vcpkg\installed\x86-windows\lib\* /SUBSYSTEM:CONSOLE > and then run, the output I see is: > success > > If I compile it statically with: > cl /D LIBSSH_STATIC /I > C:\Users\User\vcpkg\installed\x86-windows-static\include main.c /link > C:\Users\User\vcpkg\installed\x86-windows-static\lib\* /SUBSYSTEM:CONSOLE > and then run, the output I see is: > 2, -1 > > Both versions compile and link without any errors. I also tried to use putty > to ssh to user@1.2.3.4 and it works fine. > Please tell me if I need to provide any more debugging information, or if any > information isn't clear. Hello, Could you please try to call ssh_init() before calling any other function from libssh (and ssh_finalize() at the end)? When using dynamic linking this will be a no-op. This is a requirement when statically linked. It is mentioned in Chapter 8 of the tutorial and in the API documentation. I'm sorry that this is not better documented. Best regards, Anderson
Re: Function behaves differently when libssh is compiled statically | petergeorgenm <petergeorgenm@xxxxxxxxxxxxxx> |
Re: Function behaves differently when libssh is compiled statically | Jakub Jelen <jjelen@xxxxxxxxxx> |
Function behaves differently when libssh is compiled statically | petergeorgenm <petergeorgenm@xxxxxxxxxxxxxx> |