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

Unable to build the code #13

Closed
saikumar-neelam opened this issue May 10, 2023 · 8 comments
Closed

Unable to build the code #13

saikumar-neelam opened this issue May 10, 2023 · 8 comments

Comments

@saikumar-neelam
Copy link

Hi,

We are unable to build the code using below commands.

CGO_ENABLED=1 CGO_LDFLAGS="-L/root/go-workspace/ducklib/" go build -tags=duckdb_use_lib main.go

The above command execution is throwing continous errors and warnings. Below is the errors throwing while building the code.

/root/go-workspace/ducklib//libduckdb.so: undefined reference to std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const@GLIBCXX_3.4.21' collect2: error: ld returned 1 exit status github.com/marcboeker/go-duckdb duckdb.cpp:121831:10: warning: missing terminating " character [enabled by default] return R"( ^

Appreciate for response.

@github-actions
Copy link

Thanks for opening an Issue! Please star this repository to motivate developers! ⭐

@lmangani
Copy link
Contributor

lmangani commented May 10, 2023

Hello @saikumar-neelam and thanks for giving this a try!

You can see our workind builder here. Note go-duckdb library quackpipe uses ships with its own bindings to specific duckdb releases so you dont need to link your own.

@saikumar-neelam
Copy link
Author

Thank You @lmangani for your response.

Tried building image with the provided builder, still error persists.

 ERROR [builder 3/5] RUN CGO_ENABLED=1 go build -o quackpipe quackpipe.go                                                       0.7s
[builder 3/5] RUN CGO_ENABLED=1 go build -o quackpipe quackpipe.go:
0 0.623 quackpipe.go:18:2: no required module provides package github.com/marcboeker/go-duckdb: go.mod file not found in current directory or any parent directory; see 'go help modules'
Dockerfile:4

   2 |     WORKDIR /
   3 |     COPY . .
   4 | >>> RUN CGO_ENABLED=1 go build -o quackpipe quackpipe.go
   5 |     RUN strip quackpipe
   6 |       

ERROR: failed to solve: process "/bin/sh -c CGO_ENABLED=1 go build -o quackpipe quackpipe.go" did not complete successfully: exit code: 1

Thank You
Sai Kumar N.

@lmangani
Copy link
Contributor

Did you run go mod tidy or go mod download from the project folder to fetch dependencies?

CGO_ENABLED=1 go build -o quackpipe -buildvcs=false 

@saikumar-neelam
Copy link
Author

Hi @lmangani

Please find below error logs.

duckdb.cpp:(.text+0x48246f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
duckdb.cpp:(.text+0x48249c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
duckdb.cpp:(.text+0x4824e6): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o):duckdb.cpp:(.text+0x4824f6): more undefined references to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)' follow
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::Binder::RetrieveUsingBinding(duckdb::Binder&, duckdb::UsingColumnSet*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::UsingColumnSet*)':
duckdb.cpp:(.text+0x48271b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ArrowUtil::TryFetchChunk(duckdb::QueryResult*, unsigned long, ArrowArray*, unsigned long&, duckdb::PreservedError&)':
duckdb.cpp:(.text+0x483a53): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x483a68): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ResultArrowArrayStreamWrapper::MyStreamGetNext(ArrowArrayStream*, ArrowArray*)':
duckdb.cpp:(.text+0x483c28): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x483c36): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o):duckdb.cpp:(.text+0x483d5d): more undefined references to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' follow
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::Transformer::TransformImport(duckdb_libpgquery::PGNode*)':
duckdb.cpp:(.text+0x4876e9): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ReadCSVReplacement(duckdb::ClientContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, duckdb::ReplacementScanData*)':
duckdb.cpp:(.text+0x487a46): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const'
duckdb.cpp:(.text+0x487b1e): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
duckdb.cpp:(.text+0x487ccc): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const'
duckdb.cpp:(.text+0x487cd7): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
duckdb.cpp:(.text+0x487d90): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::DisabledOptimizersSetting::GetSetting(duckdb::ClientContext&)':
duckdb.cpp:(.text+0x4880a6): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
duckdb.cpp:(.text+0x4880ed): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::Transformer::TransformUse(duckdb_libpgquery::PGNode*)':
duckdb.cpp:(.text+0x48884e): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x488930): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ExpressionBinder::CreateStructExtract(std::unique_ptr<duckdb::ParsedExpression, std::default_delete<duckdb::ParsedExpression> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
duckdb.cpp:(.text+0x488cd3): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find(char const*, unsigned long, unsigned long) const'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ExpressionBinder::QualifyColumnNames(std::unique_ptr<duckdb::ParsedExpression, std::default_delete<duckdb::ParsedExpression> >&)':
duckdb.cpp:(.text+0x489649): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x489688): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::ExpressionBinder::BindQualifiedColumnName(duckdb::ColumnRefExpression&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
duckdb.cpp:(.text+0x48994b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::Transformer::TransformShow(duckdb_libpgquery::PGNode*)':
duckdb.cpp:(.text+0x489d40): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x489d59): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
duckdb.cpp:(.text+0x489e5e): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
duckdb.cpp:(.text+0x489e71): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)'
duckdb.cpp:(.text+0x489ebb): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
duckdb.cpp:(.text+0x489ece): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
duckdb.cpp:(.text+0x489ee1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)'
duckdb.cpp:(.text+0x489efb): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)'
duckdb.cpp:(.text+0x489f13): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(char const*)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::DefaultTypeGenerator::CreateDefaultEntry(duckdb::ClientContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
duckdb.cpp:(.text+0x48a711): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
duckdb.cpp:(.text+0x48a798): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const'
duckdb.cpp:(.text+0x48a977): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::VectorStringToList::StringToNestedTypeCastLoop(duckdb::string_t*, duckdb::ValidityMask&, duckdb::Vector&, duckdb::ValidityMask&, unsigned long, duckdb::CastParameters&, duckdb::SelectionVector const*)':
duckdb.cpp:(.text+0x49f6fd): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
duckdb.cpp:(.text+0x49f789): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)'
duckdb.cpp:(.text+0x49fa77): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::Base64Fun::RegisterFunction(duckdb::BuiltinFunctions&)':
duckdb.cpp:(.text+0x4a1c14): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
duckdb.cpp:(.text+0x4a1c53): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::CurrentDateFun::RegisterFunction(duckdb::BuiltinFunctions&)':
duckdb.cpp:(.text+0x4a2b92): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
duckdb.cpp:(.text+0x4a2bd1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/root/go/pkg/mod/github.com/marcboeker/[email protected]/deps/linux_amd64/libduckdb.a(duckdb.o): In function `duckdb::CurrentTimestampFun::RegisterFunction(duckdb::BuiltinFunctions&)':
duckdb.cpp:(.text+0x4a30ea): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'

@lmangani
Copy link
Contributor

@saikumar-neelam That's odd. What OS/version and go version are you attempting this with?
As you can see the action builds and runs fine so this must be related to your setup.

@saikumar-neelam
Copy link
Author

@lmangani : I am using CentOS Linux release 7.9.2009 (Core) and go version go1.20.4 linux/amd64

@lmangani
Copy link
Contributor

Perhaps you can try running a test with //github.com/marcboeker/go-duckdb directly and see if it poses the same challenge? Happy to implement any required fixes to make this as accessible as possible.

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