From: dE <de....@gm...> - 2015-02-19 03:27:22
|
On 02/18/15 18:06, John Brown wrote: > On Wed, 18 Feb 2015 16:42:03 +0530, dE wrote: >> On 02/18/15 14:18, John Brown wrote: >>> On Wed, 18 Feb 2015 11:24:02 +0530, dE wrote: >>>> On 02/18/15 10:18, dE wrote: >>>>> Hi! >>>>> >>>>> I've tried to compiling ldns, cares and both of these, although >>>>> compile, result in undefined references when trying to link a program >>>>> using them >>>>> >>>>> /tmp/cci2q85W.o:ldns_resolv.c:(.text+0x55): undefined reference to >>>>> `ldns_dname_new_frm_str' >>>>> >>> [many more undefined references snipped] >>> >>>>> I installed using MXE on Linux. >>>> So I compiled libregex and made test.c >>>> >>>> #include <regex.h> >>>> int main () { >>>> struct re_pattern_buffer test; >>>> re_compile_fastmap (&test); >>>> } >>>> >>>> PATH="/home/de/mxe/usr/bin:$PATH" >>>> /home/de/mxe/usr/bin/i686-pc-mingw32-gcc-4.8.1 >>>> -lregex test.c >>>> /tmp/ccWVANE9.o:test.c:(.text+0x16): undefined reference to >>>> `re_compile_fastmap' >>> It seems that when you installed libregex (and the other) >>> libraries , you did not put them in the cross-compiler's search path. >>> They probably got installed under /usr/local. Wherever they are, they >>> must be moved to the correct location. >>> >>> 1) Where is libregex*.a? >>> 2) What is the output of >>> $ i686-pc-mingw32-gcc-4.8.1 --print-search-dirs >>> >>> Regards, >>> John Brown. >>> >> libregex is in the search dir that's why GCC doesn't complain of it being missing. It's in mxe/usr/i686-pc-mingw32/lib >> >> Besides all libraries are installed there. >> >> install: /home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/ >> programs: =/home/de/mxe/usr/libexec/gcc/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/libexec/gcc/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/libexec/gcc/i686-pc-mingw32/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/../../../../i686-pc-mingw32/bin/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/../../../../i686-pc-mingw32/bin/ >> libraries: =/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/../../../../i686-pc-mingw32/lib/i686-pc-mingw32/4.8.1/:/home/de/mxe/usr/lib/gcc/i686-pc-mingw32/4.8.1/../../../../i686-pc-mingw32/lib/ >> >> > Concentrating on libregex for now: > > There may be a problem with name mangling. Run > $ i686-pc-mingw32-gcc-4.8.1 -c -o test.o test.c > then run > $ /path/to/cross-compiler's/nm test.o | grep re_compile_fastmap > > Compare the output with what you see when you run the same nm > command on /path/to/cross-compiler's/libregex.a (or libregex.dll.a). > > Where did you download libregex? > > Regards, > John Brown. > > > ------------------------------------------------------------------------------ > Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server > from Actuate! Instantly Supercharge Your Business Reports and Dashboards > with Interactivity, Sharing, Native Excel Exports, App Integration & more > Get technology previously reserved for billion-dollar corporations, FREE > http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk > bin/i686-pc-mingw32-nm test.o | grep re_compile_fastmap U _re_compile_fastmap i686-pc-mingw32-nm /home/de/mxe/usr/i686-pc-mingw32/lib/libregex.a | grep re_compile_fastmap 00000000 I __imp__re_compile_fastmap 00000000 T _re_compile_fastmap Downloaded regex from here -- https://github.com/coapp-packages/libgnurx |