root@xxxxxx-23:~# uname -a
Linux xxxxxx-23 4.4.70-letstry #1 SMP Tue Jul 11 13:58:17 IST 2017 x86_64
x86_64 x86_64 GNU/Linux

root@xxxxxx-23:/usr/lib/go/src/pkg# go version
go version go1.2.1 linux/amd64

root@xxxxxx-23:~/temp-go/src# go build -x
WORK=/tmp/go-build751660824
mkdir -p $WORK/_/root/temp-go/src/_obj/
cd /root/temp-go/src
/usr/lib/gccgo/tool/cgo -objdir $WORK/_/root/temp-go/src/_obj/ -gccgo -- -I
$WORK/_/root/temp-go/src/_obj/ -I/usr/local/include temp.go
gcc -Wall -g -I $WORK/_/root/temp-go/src/_obj/ -I /usr/pkg/linux_amd64 -o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o -D GOOS_linux -D GOARCH_amd64
-m64 -c $WORK/_/root/temp-go/src/_obj/_cgo_defun.c
gcc -I . -g -O2 -fPIC -m64 -pthread -print-libgcc-file-name
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/_cgo_main.o -c
$WORK/_/root/temp-go/src/_obj/_cgo_main.c
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/_cgo_export.o -c
$WORK/_/root/temp-go/src/_obj/_cgo_export.c
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/temp.cgo2.o -c
$WORK/_/root/temp-go/src/_obj/temp.cgo2.c
gcc -I . -g -O2 -fPIC -m64 -pthread -o
$WORK/_/root/temp-go/src/_obj/_cgo_.o
$WORK/_/root/temp-go/src/_obj/_cgo_main.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o -L/usr/local/lib -ltemp
gccgo -I $WORK -c -g -m64 -fgo-relative-import-path=_/root/temp-go/src -o
$WORK/_/root/temp-go/src/_obj/main.o
$WORK/_/root/temp-go/src/_obj/_cgo_gotypes.go
$WORK/_/root/temp-go/src/_obj/temp.cgo1.go
ar cru $WORK/_/root/temp-go/libsrc.a $WORK/_/root/temp-go/src/_obj/main.o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o
cd .
gccgo -o src $WORK/_/root/temp-go/src/_obj/main.o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o -Wl,-( -m64 -Wl,-)
# _/root/temp-go/src
/root/temp-go/src/temp.go:40: error: undefined reference to 'temp_close'
/root/temp-go/src/temp.go:46: error: undefined reference to 'temp_open'
/root/temp-go/src/temp.go:52: error: undefined reference to 'temp_size'
collect2: error: ld returned 1 exit status



root@xxxxxx-23:~/temp-go/src# go build -x -gccgoflags '-L/usr/local/lib
-ltemp'
WORK=/tmp/go-build002491189
mkdir -p $WORK/_/root/temp-go/src/_obj/
cd /root/temp-go/src
/usr/lib/gccgo/tool/cgo -objdir $WORK/_/root/temp-go/src/_obj/ -gccgo -- -I
$WORK/_/root/temp-go/src/_obj/ -I/usr/local/include temp.go
gcc -Wall -g -I $WORK/_/root/temp-go/src/_obj/ -I /usr/pkg/linux_amd64 -o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o -D GOOS_linux -D GOARCH_amd64
-m64 -c $WORK/_/root/temp-go/src/_obj/_cgo_defun.c
gcc -I . -g -O2 -fPIC -m64 -pthread -print-libgcc-file-name
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/_cgo_main.o -c
$WORK/_/root/temp-go/src/_obj/_cgo_main.c
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/_cgo_export.o -c
$WORK/_/root/temp-go/src/_obj/_cgo_export.c
gcc -I . -g -O2 -fPIC -m64 -pthread -I $WORK/_/root/temp-go/src/_obj/
-I/usr/local/include -o $WORK/_/root/temp-go/src/_obj/temp.cgo2.o -c
$WORK/_/root/temp-go/src/_obj/temp.cgo2.c
gcc -I . -g -O2 -fPIC -m64 -pthread -o
$WORK/_/root/temp-go/src/_obj/_cgo_.o
$WORK/_/root/temp-go/src/_obj/_cgo_main.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o -L/usr/local/lib -ltemp
gccgo -I $WORK -c -g -m64 -fgo-relative-import-path=_/root/temp-go/src -o
$WORK/_/root/temp-go/src/_obj/main.o -L/usr/local/lib -ltemp
$WORK/_/root/temp-go/src/_obj/_cgo_gotypes.go
$WORK/_/root/temp-go/src/_obj/temp.cgo1.go
ar cru $WORK/_/root/temp-go/libsrc.a $WORK/_/root/temp-go/src/_obj/main.o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o
cd .
gccgo -o src $WORK/_/root/temp-go/src/_obj/main.o
$WORK/_/root/temp-go/src/_obj/_cgo_defun.o
$WORK/_/root/temp-go/src/_obj/_cgo_export.o
$WORK/_/root/temp-go/src/_obj/temp.cgo2.o -Wl,-( -m64 -Wl,-)
-L/usr/local/lib -ltemp




On Wed, Jul 19, 2017 at 10:28 AM, Ian Lance Taylor <i...@golang.org> wrote:

> On Tue, Jul 18, 2017 at 9:40 PM,  <bhaskar.sing...@gmail.com> wrote:
> >
> > I am trying to link a dynamic library to my go code.
> >
> > /*
> > #cgo CFLAGS: -I/usr/local/include
> > #cgo LDFLAGS: -L/usr/local/lib -ltemp
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <libtemp.h>
> > */
> >
> > When I run go build -x it fails due to missing symbols which are exported
> > from libtemp.so but if do
> > go build -x -gccgoflags '-L/usr/local/lib -ltemp' then it works fine.
> >
> > I am wondering if there is a way to specify -gccgoflags using pseudo #cgo
> > directive.
>
> The ordinary #cgo LDFLAGS should work with gccgo as it does with the
> gc toolchain.
>
> Can you show us the output of `go build -x`?  Also tell us which
> version of the toolchains you are using.
>
> Ian
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to