Nice job!
I think it's works fine on Linux. Though I just tested it on
windows(my linux machine is not at hand), when I tried to build the examples I
got the errors as blow:
$ make mushroom
8g mushroom.go
8l -o mushroom mushroom.8
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_set_activation_function: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_create_sparse_array:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_set_rprop_delta_min:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_network_type:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_total_neurons:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_train_on_file: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_num_output: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_set_weight_array:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_bias_array: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_get_rprop_decrease_factor: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_get_train_error_function: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_save_to_fixed: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_rprop_delta_max:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_connection_rate:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_clear_scaling_params: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_set_activation_function_layer: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_set_rprop_delta_max:
not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_get_MSE: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text): fann_init_weights: not
defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_get_total_connections: not defined
C:/Go/pkg/windows_386/fann.a(fann.cgo2.o)(.text):
fann_get_rprop_increase_factor: not defined
too many errors
make: *** [mushroom] Error 1
Surely there’s something wrong with cgo, it can’t find the linked
libs but what’s wrong? Is there some thing I can do?
Of couse I've first build FANN on windows using MSYS
and all the examples works fine, then I installed the go-bindings : go-fann with
no problems:
CGOPKGPATH= cgo -- fann.go fann-train.go fann-enums.go
fann-cascade.go fann-error.go
touch _obj/_cgo_run
8g -o _go_.8 _obj/fann.cgo1.go _obj/fann-train.cgo1.go
_obj/fann-enums.cgo1.go _obj/fann-cascade.cgo1.go _obj/fann-error.cgo1.go
_obj/_cgo_gotypes.go
8c -FVw -IC:/Go/pkg/windows_386 -I . -o "_cgo_defun.8"
_obj/_cgo_defun.c
gcc -m32 -I . -g -fPIC -O2 -o _cgo_main.o -c
_obj/_cgo_main.c
_obj/_cgo_main.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -I . -g -fPIC -O2 -o fann.cgo2.o -c
_obj/fann.cgo2.c
_obj/fann.cgo2.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -I . -g -fPIC -O2 -o fann-train.cgo2.o -c
_obj/fann-train.cgo2.c
_obj/fann-train.cgo2.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -I . -g -fPIC -O2 -o fann-enums.cgo2.o -c
_obj/fann-enums.cgo2.c
_obj/fann-enums.cgo2.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -I . -g -fPIC -O2 -o fann-cascade.cgo2.o -c
_obj/fann-cascade.cgo2.c
_obj/fann-cascade.cgo2.c:1:0: warning: -fPIC ignored for target (all code
is position independent)
gcc -m32 -I . -g -fPIC -O2 -o fann-error.cgo2.o -c
_obj/fann-error.cgo2.c
_obj/fann-error.cgo2.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -I . -g -fPIC -O2 -o _cgo_export.o -c
_obj/_cgo_export.c
_obj/_cgo_export.c:1:0: warning: -fPIC ignored for target (all code is
position independent)
gcc -m32 -g -fPIC -O2 -o _cgo1_.o _cgo_main.o fann.cgo2.o fann-train.cgo2.o
fann-enums.cgo2.o fann-cascade.cgo2.o fann-error.cgo2.o _cgo_export.o -lfann
-lm
cgo -dynimport _cgo1_.o >_obj/_cgo_import.c_ && mv -f
_obj/_cgo_import.c_ _obj/_cgo_import.c
8c -FVw -I . -o "_cgo_import.8" _obj/_cgo_import.c
rm -f _obj/fann.a
gopack grc _obj/fann.a _go_.8 _cgo_defun.8 _cgo_import.8 fann.cgo2.o
fann-train.cgo2.o fann-enums.cgo2.o fann-cascade.cgo2.o fann-error.cgo2.o
_cgo_export.o
cp _obj/fann.a "C:/Go/pkg/windows_386/fann.a"
it works fine and seems no problems, but why can’t I use the fann.a
lib with go ?