Well, very interesting. This is something called name mangling.
The way you keep the mangling from happening is by adding:
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif
}
#endif
around the entry points. Well, ssl.h has this code in there so I shouldn't be having
this problem.
I also tried this in my Socket.cpp file:
extern "C" {
#include <openssl/ssl.h>
#include <openssl/err.h>
}
#include <openssl/ssl.h>
#include <openssl/err.h>
}
It didn't help. I'm still getting the linker errors showing entrypoints with "_" on the front.
Any idea what might be going on?
Don Payette
(cell) 479-216-6320
On Wed, Sep 6, 2023 at 8:22 AM Don Payette <payettedon@xxxxxxxxx> wrote:
Well, the linker is giving me this error, plus other similar errors:Error LNK2019 unresolved external symbol _SSL_CTX_new referenced in function ...My code is calling SSL_CTX_new, so it appears something is adding an underscore on the front.I looked in libssl.def and SSL_CTX_new is there, but not _SSL_CTX_new. Anybody know wherethe underscore is coming from?Don Payette(cell) 479-216-6320On Thu, Aug 31, 2023 at 11:53 AM Kenneth Porter <shiva@xxxxxxxxxxxxxxx> wrote:On 8/31/2023 8:24 AM, Don Payette wrote:
I'm using Microsoft Visual Studio, so no command line.In the linker settings there is an External Dependencies. I added libcrypto.lib and libssl.lb.We'll see what happens.Open the project configuration, go to Configuration Properties | Linker | Command Line, and you can copy and paste the arguments that the IDE will pass to the linker. (There's a similar feature under C/C++ in that dialog for the command line compiler.) If it says "different options", you need to use the drop-down menus at the top of the dialog to select a specific configuration (like Debug and x64) to see the command line for that configuration.