Dear NCL team,
I have written a C code of EEMD method under Mac OS X 10.9. When I tried to call it from NCL, I followed the instruction of NCL website (http://www.ncl.ucar.edu/Document/Manuals/Ref_Manual/NclExtend.shtml#Example_6) by writing a wrapper. The codes I have now are:
- eemd.c
- eemd_ncl_wrapper.c
and I ran the following commands:
$ nhlcc -c eemd_ncl_wrapper.c
gcc -DSYSV -D_XOPEN_SOURCE -DByteSwapped -D__UNIXOS2__ -DNeedFuncProto -ansi -fPIC -m64 -Wall -O -c eemd_ncl_wrapper.c -L<…>/ncl/6.1.2/lib -L/usr/X11R6/lib -I<…>/ncl/6.1.2/include -I/usr/X11R6/include -lhlu -lncarg -lncarg_gks -lncarg_c -lXpm -lX11 -lXext -lcairo -lfontconfig -lpixman-1 -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran
clang: warning: -lhlu: 'linker' input unused
clang: warning: -lncarg: 'linker' input unused
clang: warning: -lncarg_gks: 'linker' input unused
clang: warning: -lncarg_c: 'linker' input unused
clang: warning: -lXpm: 'linker' input unused
clang: warning: -lX11: 'linker' input unused
clang: warning: -lXext: 'linker' input unused
clang: warning: -lcairo: 'linker' input unused
clang: warning: -lfontconfig: 'linker' input unused
clang: warning: -lpixman-1: 'linker' input unused
clang: warning: -lfreetype: 'linker' input unused
clang: warning: -lexpat: 'linker' input unused
clang: warning: -lpng: 'linker' input unused
clang: warning: -lz: 'linker' input unused
clang: warning: -lpthread: 'linker' input unused
clang: warning: -lbz2: 'linker' input unused
clang: warning: -lXrender: 'linker' input unused
clang: warning: -lgfortran: 'linker' input unused
clang: warning: argument unused during compilation: ‘-L<…>/ncl/6.1.2/lib'
clang: warning: argument unused during compilation: '-L/usr/X11R6/lib’
$ nhlcc -c eemd.c
gcc -DSYSV -D_XOPEN_SOURCE -DByteSwapped -D__UNIXOS2__ -DNeedFuncProto -ansi -fPIC -m64 -Wall -O -c eemd.c -L<…>/ncl/6.1.2/lib -L/usr/X11R6/lib -I<…>/ncl/6.1.2/include -I/usr/X11R6/include -lhlu -lncarg -lncarg_gks -lncarg_c -lXpm -lX11 -lXext -lcairo -lfontconfig -lpixman-1 -lfreetype -lexpat -lpng -lz -lpthread -lbz2 -lXrender -lgfortran
clang: warning: -lhlu: 'linker' input unused
clang: warning: -lncarg: 'linker' input unused
clang: warning: -lncarg_gks: 'linker' input unused
clang: warning: -lncarg_c: 'linker' input unused
clang: warning: -lXpm: 'linker' input unused
clang: warning: -lX11: 'linker' input unused
clang: warning: -lXext: 'linker' input unused
clang: warning: -lcairo: 'linker' input unused
clang: warning: -lfontconfig: 'linker' input unused
clang: warning: -lpixman-1: 'linker' input unused
clang: warning: -lfreetype: 'linker' input unused
clang: warning: -lexpat: 'linker' input unused
clang: warning: -lpng: 'linker' input unused
clang: warning: -lz: 'linker' input unused
clang: warning: -lpthread: 'linker' input unused
clang: warning: -lbz2: 'linker' input unused
clang: warning: -lXrender: 'linker' input unused
clang: warning: -lgfortran: 'linker' input unused
clang: warning: argument unused during compilation: ‘-L<…>/ncl/6.1.2/lib'
clang: warning: argument unused during compilation: '-L/usr/X11R6/lib’
$ ld -o eemd.so eemd_ncl_wrapper.o eemd.o
ld: warning: -macosx_version_min not specified, assuming 10.8
Undefined symbols for architecture x86_64:
"_NclGetArgValue", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_NclRegisterFunc", referenced from:
_Init in eemd_ncl_wrapper.o
"_NclReturnValue", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_NewArgs", referenced from:
_Init in eemd_ncl_wrapper.o
"_NhlPError", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_SetArgTemplate", referenced from:
_Init in eemd_ncl_wrapper.o
"___bzero", referenced from:
_eemd in eemd.o
"___stack_chk_fail", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
_Init in eemd_ncl_wrapper.o
"___stack_chk_guard", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
_Init in eemd_ncl_wrapper.o
"_c_ftcurv", referenced from:
_emd in eemd.o
"_c_ftsetr", referenced from:
_emd in eemd.o
"_exit", referenced from:
_emd in eemd.o
"_free", referenced from:
_emd in eemd.o
_eemd in eemd.o
"_log", referenced from:
_randn in eemd.o
"_log2", referenced from:
_eemd in eemd.o
"_malloc", referenced from:
_emd in eemd.o
_eemd in eemd.o
"_memcpy", referenced from:
_emd in eemd.o
"_printf", referenced from:
_emd in eemd.o
"_rand", referenced from:
_randn in eemd.o
(maybe you meant: _randn)
"_srand", referenced from:
_eemd in eemd.o
"_time", referenced from:
_eemd in eemd.o
"start", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for inferred architecture x86_64
As you can see there are bunch of undefined symbols, so I added some libraries as:
$ ld eemd_ncl_wrapper.o eemd.o -o eemd.so -lm -L<…>/ncl/6.1.2/lib -lngmath
ld: warning: -macosx_version_min not specified, assuming 10.8
Undefined symbols for architecture x86_64:
"_NclGetArgValue", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_NclRegisterFunc", referenced from:
_Init in eemd_ncl_wrapper.o
"_NclReturnValue", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_NewArgs", referenced from:
_Init in eemd_ncl_wrapper.o
"_NhlPError", referenced from:
_eemd_ncl_wrapper in eemd_ncl_wrapper.o
"_SetArgTemplate", referenced from:
_Init in eemd_ncl_wrapper.o
"start", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for inferred architecture x86_64
and more libraries, but more and more undefined symbols are reported, some of them are:
“_nctypelen”, “_sd_ncvarinq”, “_seekgb”, “start”
What can I do with these errors? Thank you in advance!
Best regards,
Li
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Tue Oct 29 02:19:38 2013
This archive was generated by hypermail 2.1.8 : Fri Nov 01 2013 - 08:58:14 MDT