Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build failure with undefined reference #26

Closed
bharatkrishna opened this issue Apr 27, 2016 · 2 comments
Closed

Build failure with undefined reference #26

bharatkrishna opened this issue Apr 27, 2016 · 2 comments

Comments

@bharatkrishna
Copy link

My system info:

Distributor ID:  Ubuntu
Description:     Ubuntu 14.04.3 LTS
Release:         14.04
Codename:        trusty

I downloaded goquic by doing

go get -u -d github.com/devsisters/goquic

I am trying to build client following instructions at https://github.com/devsisters/goquic/tree/master/example

Build is failing with the following error:

# go build $GOPATH/src/github.com/devsisters/goquic/example/client.go
# github.com/devsisters/goquic
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/dispatcher.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_quic_server_session_connection_stat':
src/github.com/devsisters/goquic/dispatcher.go:74: undefined reference to `quic_server_session_connection_stat'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/proof_source.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_init_proof_source_goquic':
src/github.com/devsisters/goquic/proof_source.go:61: undefined reference to `init_proof_source_goquic'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/proof_source.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_delete_crypto_config':
src/github.com/devsisters/goquic/proof_source.go:37: undefined reference to `delete_crypto_config'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/proof_source.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_proof_source_goquic_add_cert':
src/github.com/devsisters/goquic/proof_source.go:74: undefined reference to `proof_source_goquic_add_cert'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/proof_source.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_proof_source_goquic_build_cert_chain':
src/github.com/devsisters/goquic/proof_source.go:83: undefined reference to `proof_source_goquic_build_cert_chain'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/quicstream_server.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_quic_simple_server_stream_write_headers':
src/github.com/devsisters/goquic/quicstream_server.go:39: undefined reference to `quic_simple_server_stream_write_headers'
/tmp/go-build331148125/github.com/devsisters/goquic/_obj/quicstream_server.cgo2.o: In function `_cgo_54fddbb622cd_Cfunc_quic_simple_server_stream_write_or_buffer_data':
src/github.com/devsisters/goquic/quicstream_server.go:52: undefined reference to `quic_simple_server_stream_write_or_buffer_data'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(adaptor_client.o): In function `create_go_quic_client_session_and_initialize':
/home/hodduc/go/src/github.com/devsisters/goquic/src/adaptor_client.cc:61: undefined reference to `net::QuicConnection::QuicConnection(unsigned long, net::IPEndPoint, net::QuicConnectionHelperInterface*, net::QuicConnection::PacketWriterFactory const&, bool, net::Perspective, std::vector<net::QuicVersion, std::allocator<net::QuicVersion> > const&)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o): In function `net::tools::GoQuicClientSession::GoQuicClientSession(net::QuicConfig const&, net::QuicConnection*, net::QuicServerId const&, net::QuicCryptoClientConfig*)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_client_session.cc:17: undefined reference to `net::QuicClientSessionBase::QuicClientSessionBase(net::QuicConnection*, net::QuicConfig const&)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o): In function `net::tools::GoQuicClientSession::CreateQuicCryptoStream()':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_client_session.cc:78: undefined reference to `net::QuicCryptoClientStream::QuicCryptoClientStream(net::QuicServerId const&, net::QuicClientSessionBase*, net::ProofVerifyContext*, net::QuicCryptoClientConfig*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o):(.rodata._ZTVN3net5tools19GoQuicClientSessionE[_ZTVN3net5tools19GoQuicClientSessionE]+0x48): undefined reference to `net::QuicSession::OnConnectionClosed(net::QuicErrorCode, bool)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o):(.rodata._ZTVN3net5tools19GoQuicClientSessionE[_ZTVN3net5tools19GoQuicClientSessionE]+0x98): undefined reference to `net::QuicSession::WritevData(unsigned int, net::QuicIOVector, unsigned long, bool, net::FecProtection, net::QuicAckListenerInterface*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o):(.rodata._ZTVN3net5tools19GoQuicClientSessionE[_ZTVN3net5tools19GoQuicClientSessionE]+0xe0): undefined reference to `net::QuicSession::GetNumOpenStreams() const'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_client_session.o):(.rodata._ZTVN3net5tools19GoQuicClientSessionE[_ZTVN3net5tools19GoQuicClientSessionE]+0x128): undefined reference to `net::QuicSpdySession::OnStreamHeadersPriority(unsigned int, unsigned int)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_connection_helper.o): In function `net::GoQuicAlarmGoWrapper::GoQuicAlarmGoWrapper(net::QuicClock*, void*, net::QuicAlarm::Delegate*)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_alarm_go_wrapper.h:19: undefined reference to `net::QuicAlarm::QuicAlarm(net::QuicAlarm::Delegate*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_dispatcher.o): In function `net::tools::GoQuicDispatcher::CreateQuicSession(unsigned long, net::IPEndPoint const&)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_dispatcher.cc:463: undefined reference to `net::QuicConnection::QuicConnection(unsigned long, net::IPEndPoint, net::QuicConnectionHelperInterface*, net::QuicConnection::PacketWriterFactory const&, bool, net::Perspective, std::vector<net::QuicVersion, std::allocator<net::QuicVersion> > const&)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_per_connection_packet_writer.o): In function `base::Callback<void (net::WriteResult)>::~Callback()':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback.h:366: undefined reference to `base::internal::CallbackBase::~CallbackBase()'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_per_connection_packet_writer.o): In function `base::Callback<void (net::WriteResult)>::Callback<base::internal::RunnableAdapter<void (net::tools::GoQuicPerConnectionPacketWriter::*)(net::WriteResult)>, void (net::tools::GoQuicPerConnectionPacketWriter*, net::WriteResult), base::internal::TypeList<base::WeakPtr<net::tools::GoQuicPerConnectionPacketWriter> > >(base::internal::BindState<base::internal::RunnableAdapter<void (net::tools::GoQuicPerConnectionPacketWriter::*)(net::WriteResult)>, void (net::tools::GoQuicPerConnectionPacketWriter*, net::WriteResult), base::internal::TypeList<base::WeakPtr<net::tools::GoQuicPerConnectionPacketWriter> > >*)':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback.h:377: undefined reference to `base::internal::CallbackBase::CallbackBase(base::internal::BindStateBase*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_packet_writer.o): In function `net::tools::GoQuicServerPacketWriter::WritePacketWithCallback(char const*, unsigned long, std::vector<unsigned char, std::allocator<unsigned char> > const&, net::IPEndPoint const&, base::Callback<void (net::WriteResult)>)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_server_packet_writer.cc:42: undefined reference to `base::internal::CallbackBase::Reset()'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_packet_writer.o): In function `base::Callback<void (net::WriteResult)>::operator=(base::Callback<void (net::WriteResult)> const&)':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback.h:366: undefined reference to `base::internal::CallbackBase::operator=(base::internal::CallbackBase const&)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_packet_writer.o): In function `base::Callback<void (net::WriteResult)>::Callback()':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback.h:370: undefined reference to `base::internal::CallbackBase::CallbackBase(base::internal::BindStateBase*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_packet_writer.o): In function `base::Callback<void (net::WriteResult)>::Callback(base::Callback<void (net::WriteResult)> const&)':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback.h:366: undefined reference to `base::internal::CallbackBase::CallbackBase(base::internal::CallbackBase const&)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_packet_writer.o): In function `base::Callback<void (net::WriteResult)> base::ResetAndReturn<void (net::WriteResult)>(base::Callback<void (net::WriteResult)>*)':
/home/hodduc/go/src/github.com/devsisters/goquic/libquic/src/base/callback_helpers.h:26: undefined reference to `base::internal::CallbackBase::Reset()'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o): In function `net::tools::GoQuicServerSession::CreateQuicCryptoServerStream(net::QuicCryptoServerConfig const*)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_server_session.cc:42: undefined reference to `net::QuicCryptoServerStream::QuicCryptoServerStream(net::QuicCryptoServerConfig const*, net::QuicSession*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o): In function `net::tools::GoQuicServerSession::OnConfigNegotiated()':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_server_session.cc:76: undefined reference to `FLAGS_enable_quic_fec'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o): In function `net::tools::GoQuicServerSession::OnConnectionClosed(net::QuicErrorCode, bool)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_server_session.cc:86: undefined reference to `net::QuicSession::OnConnectionClosed(net::QuicErrorCode, bool)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o):(.rodata._ZTVN3net5tools19GoQuicServerSessionE[_ZTVN3net5tools19GoQuicServerSessionE]+0x98): undefined reference to `net::QuicSession::WritevData(unsigned int, net::QuicIOVector, unsigned long, bool, net::FecProtection, net::QuicAckListenerInterface*)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o):(.rodata._ZTVN3net5tools19GoQuicServerSessionE[_ZTVN3net5tools19GoQuicServerSessionE]+0xe0): undefined reference to `net::QuicSession::GetNumOpenStreams() const'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_server_session.o):(.rodata._ZTVN3net5tools19GoQuicServerSessionE[_ZTVN3net5tools19GoQuicServerSessionE]+0x128): undefined reference to `net::QuicSpdySession::OnStreamHeadersPriority(unsigned int, unsigned int)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_client_stream.o): In function `net::tools::GoQuicSpdyClientStream::OnStreamHeadersComplete(bool, unsigned long)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_spdy_client_stream.cc:44: undefined reference to `GoQuicSpdyClientStreamOnStreamHeadersComplete_C'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_client_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyClientStreamE[_ZTVN3net5tools22GoQuicSpdyClientStreamE]+0x40): undefined reference to `net::ReliableQuicStream::OnConnectionClosed(net::QuicErrorCode, bool)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_client_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyClientStreamE[_ZTVN3net5tools22GoQuicSpdyClientStreamE]+0x58): undefined reference to `net::ReliableQuicStream::CloseConnection(net::QuicErrorCode)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_client_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyClientStreamE[_ZTVN3net5tools22GoQuicSpdyClientStreamE]+0x68): undefined reference to `net::QuicSpdyStream::EffectivePriority() const'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_client_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyClientStreamE[_ZTVN3net5tools22GoQuicSpdyClientStreamE]+0x90): undefined reference to `net::QuicSpdyStream::OnStreamHeadersPriority(unsigned int)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o): In function `net::tools::GoQuicSpdyServerStream::OnStreamHeadersComplete(bool, unsigned long)':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_spdy_server_stream.cc:27: undefined reference to `GoQuicSpdyServerStreamOnStreamHeadersComplete_C'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o): In function `net::tools::GoQuicSpdyServerStream::OnDataAvailable()':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_spdy_server_stream.cc:57: undefined reference to `GoQuicSpdyServerStreamOnDataAvailable_C'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o): In function `net::tools::GoQuicSpdyServerStream::OnClose()':
/home/hodduc/go/src/github.com/devsisters/goquic/src/go_quic_spdy_server_stream.cc:68: undefined reference to `GoQuicSpdyServerStreamOnClose_C'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyServerStreamE[_ZTVN3net5tools22GoQuicSpdyServerStreamE]+0x40): undefined reference to `net::ReliableQuicStream::OnConnectionClosed(net::QuicErrorCode, bool)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyServerStreamE[_ZTVN3net5tools22GoQuicSpdyServerStreamE]+0x58): undefined reference to `net::ReliableQuicStream::CloseConnection(net::QuicErrorCode)'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyServerStreamE[_ZTVN3net5tools22GoQuicSpdyServerStreamE]+0x68): undefined reference to `net::QuicSpdyStream::EffectivePriority() const'
src/github.com/devsisters/goquic/lib/linux_amd64/libgoquic.a(go_quic_spdy_server_stream.o):(.rodata._ZTVN3net5tools22GoQuicSpdyServerStreamE[_ZTVN3net5tools22GoQuicSpdyServerStreamE]+0x90): undefined reference to `net::QuicSpdyStream::OnStreamHeadersPriority(unsigned int)'
collect2: error: ld returned 1 exit status
@hodduc
Copy link
Member

hodduc commented Apr 29, 2016

Thanks. Could you check again please?
It is because of version mismatch between goquic and libquic.
I updated goquic 492debe to use recent libquic.

@bharatkrishna
Copy link
Author

Thanks. I am able to build the client now.
Closing the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants