google / certificate-transparency

Auditing for TLS certificates.
https://certificate.transparency.dev
Apache License 2.0
869 stars 283 forks source link

i2d_re_X509_tbs not declared #293

Closed indebitus closed 9 years ago

indebitus commented 9 years ago

Hi,

When building on the master and super_duper branches, the following error occurs:

g++ -I . -I /root/openssl/include -I /usr/src/gmock/include -I /usr/src/gmock/gtest/include -I /usr/local/include -std=c++11 -Wall -Werror -g -O3 -I/usr/include/json-c   -I/root/openssl/include/openssl -Wno-error   -c -o log/cert.o log/cert.cc
log/cert.cc: In member function 'cert_trans::Cert::Status cert_trans::Cert::DerEncodedTbsCertificate(std::string*) const':
log/cert.cc:388:51: error: 'i2d_re_X509_tbs' was not declared in this scope
   int der_length = i2d_re_X509_tbs(x509_, &der_buf);
                                                   ^
log/cert.cc: In member function 'cert_trans::Cert::Status cert_trans::TbsCertificate::DerEncoding(std::string*) const':
log/cert.cc:579:51: error: 'i2d_re_X509_tbs' was not declared in this scope
   int der_length = i2d_re_X509_tbs(x509_, &der_buf);

I should have all the dependencies installed. Running Ubuntu 14.04 x64.

eranmes commented 9 years ago

Which OpenSSL version have you got installed?

Eran

On Mon, Dec 1, 2014 at 6:12 AM, Indebitus notifications@github.com wrote:

Hi,

When building on the master and super_duper branches, the following error occurs:

g++ -I . -I /root/openssl/include -I /usr/src/gmock/include -I /usr/src/gmock/gtest/include -I /usr/local/include -std=c++11 -Wall -Werror -g -O3 -I/usr/include/json-c -I/root/openssl/include/openssl -Wno-error -c -o log/cert.o log/cert.cc log/cert.cc: In member function 'cert_trans::Cert::Status certtrans::Cert::DerEncodedTbsCertificate(std::string) const': log/cert.cc:388:51: error: 'i2d_re_X509_tbs' was not declared in this scope int der_length = i2d_re_X509tbs(x509, &der_buf); ^ log/cert.cc: In member function 'cert_trans::Cert::Status certtrans::TbsCertificate::DerEncoding(std::string) const': log/cert.cc:579:51: error: 'i2d_re_X509_tbs' was not declared in this scope int der_length = i2d_re_X509tbs(x509, &der_buf);

I should have all the dependencies installed. Running Ubuntu 14.04 x64.

— Reply to this email directly or view it on GitHub https://github.com/google/certificate-transparency/issues/293.

indebitus commented 9 years ago

I successfully built the 1.0.2-stable branch from source.

indebitus commented 9 years ago

I forgot to run make install. I got further, but now I'm here and pretty sure it's related.

g++ -I . -I /root/openssl/include -I /usr/src/gmock/include -I /usr/src/gmock/gtest/include -I /usr/local/include -Wall -Werror -g -O3 -I/usr/include/json-c   -I/root/openssl/include -Wno-error    log/cert_test.o gmock/gtest/libgtest.a log/cert.o log/ct_extensions.o util/libutil.a merkletree/serial_hasher.o log/frontend.o proto/ct.pb.o log/frontend_signer.o log/cert_submission_handler.o log/log_signer.o log/signer.o log/verifier.o proto/serializer.o log/cert_checker.o  -lpthread -lgflags -lglog -lssl -lcrypto -lldns -lsqlite3 -lprotobuf -levent_core -levent_extra -levent_pthreads -lresolv -lboost_system -lboost_thread -L /root/openssl -L /root/openssl/lib -Wl,-rpath,/root/openssl -Wl,-rpath,/root/openssl/lib -ljson-c   -L /usr/local/lib -o log/cert_test
/usr/bin/ld: /root/openssl/libcrypto.a(dso_dlfcn.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
indebitus commented 9 years ago

Ideas?

pphaneuf commented 9 years ago

That specific symbol is in libdl.so, so adding -ldl to the command line should fix it? I'm not sure why it's missing, though...

indebitus commented 9 years ago

Adding that and doing make clean fixed it. Thanks.