Quantcast
Viewing all articles
Browse latest Browse all 6142

Linking issues using OpenSSL in Ubuntu

I have installed OpenSSL using sudo apt-get install openssl-dev. When I try to compile it using Netbeans it gives following errors. How can I fix this problem?

g++     -lssl -o dist/Debug/GNU-Linux-x86/cppapplication_2 build/Debug/GNU-Linux-x86/main.o -L/home/sercan/Desktop/openssl-0.9.8h-1-lib/libbuild/Debug/GNU-Linux-x86/main.o: In function `main':/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:46: undefined reference to `OPENSSL_add_all_algorithms_noconf'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:48: undefined reference to `ERR_load_crypto_strings'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:58: undefined reference to `d2i_PKCS12_fp'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:66: undefined reference to `ERR_print_errors_fp'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:72: undefined reference to `PKCS12_parse'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:76: undefined reference to `ERR_print_errors_fp'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:82: undefined reference to `PKCS12_free'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:96: undefined reference to `PEM_write_PrivateKey'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:104: undefined reference to `PEM_write_X509_AUX'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:108: undefined reference to `sk_num'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:114: undefined reference to `sk_value'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:114: undefined reference to `PEM_write_X509_AUX'/home/sercan/NetBeansProjects/CppApplication_2/main.cpp:112: undefined reference to `sk_num'

My code is here:

#include <stdio.h>#include <stdlib.h>#include <openssl/pem.h>#include <openssl/err.h>#include <openssl/pkcs12.h>/* Simple PKCS#12 file reader */int main(int argc, char **argv){    FILE *fp;    EVP_PKEY *pkey;    X509 *cert;    STACK_OF(X509) *ca = NULL;    PKCS12 *p12;    int i;    if (argc != 4) {        fprintf(stderr, "Usage: pkread p12file password opfile\n");        exit(1);    }    OpenSSL_add_all_algorithms();    ERR_load_crypto_strings();    if (!(fp = fopen(argv[1], "rb"))) {        fprintf(stderr, "Error opening file %s\n", argv[1]);        exit(1);    }    p12 = d2i_PKCS12_fp(fp, NULL);    fclose(fp);    if (!p12) {        fprintf(stderr, "Error reading PKCS#12 file\n");        ERR_print_errors_fp(stderr);        exit(1);    }    if (!PKCS12_parse(p12, argv[2], &pkey, &cert, &ca)) {        fprintf(stderr, "Error parsing PKCS#12 file\n");        ERR_print_errors_fp(stderr);        exit(1);    }    PKCS12_free(p12);    if (!(fp = fopen(argv[3], "w"))) {        fprintf(stderr, "Error opening file %s\n", argv[1]);        exit(1);    }    if (pkey) {        fprintf(fp, "***Private Key***\n");        PEM_write_PrivateKey(fp, pkey, NULL, NULL, 0, NULL, NULL);    }    if (cert) {        fprintf(fp, "***User Certificate***\n");        PEM_write_X509_AUX(fp, cert);    }    if (ca && sk_X509_num(ca)) {        fprintf(fp, "***Other Certificates***\n");        for (i = 0; i < sk_X509_num(ca); i++)            PEM_write_X509_AUX(fp, sk_X509_value(ca, i));    }    fclose(fp);    return 0;}

Viewing all articles
Browse latest Browse all 6142

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>