Probably is because the function declaration being done in the file. I guess since you are using g++ to build the sample it could being compiled as C++, then the function declaration is incorrect because it is missing the extern C. So the linker error.
I think something like this can fiz the problem: #ifdef __cplusplus extern "C" char *iupKeyCodeToName(int code); #endif Best, Scuri Em sex, 21 de dez de 2018 às 01:09, Daniel G. <[email protected]> escreveu: > Hello I'm trying to make a windows executable of this example: > https://www.tecgraf.puc-rio.br/iup/examples/C/sample.c > On Linux with help of this tool: https://github.com/jprjr/iup-build > On Ubuntu 16.04, but i get this linking error when trying to cross-compile: > daniel@daniel-desktop:~/Desktop/$ make > i686-w64-mingw32-g++ -static > -I/home/daniel/iup-build/deps/iup-3.22/include > -I/home/daniel/iup-build/deps/cd-5.11.1/include > -I/home/daniel/iup-build/deps/im-3.12/include > -I/home/daniel/iup-build/deps/zlib-1.2.8/include > -I/home/daniel/iup-build/deps/freetype-2.6.3/include -o sample.exe sample.c > -L/home/daniel/iup-build/deps/iup-3.22/lib/mingw4 > -L/home/daniel/iup-build/deps/cd-5.11.1/lib/mingw4 > -L/home/daniel/iup-build/deps/im-3.12/lib/mingw4 > -L/home/daniel/iup-build/deps/zlib-1.2.8/lib/mingw4 > -L/home/daniel/iup-build/deps/freetype-2.6.3/lib/mingw4 -lm -lcdim -lim > -lim_process -lcd -liupcd -liupim -liupimglib -liupcontrols -liup -liupgl > -lz -lim -lcd -lfreetype6 -lgdi32 -lcomdlg32 -lcomctl32 -luuid -loleaut32 > -lole32 -lwinspool > /tmp/cccFDodU.o:sample.c:(.text+0x1da): undefined reference to > `iupKeyCodeToName(int)' > /tmp/cccFDodU.o:sample.c:(.text+0x215): undefined reference to > `iupKeyCodeToName(int)' > /tmp/cccFDodU.o:sample.c:(.text+0x55e): undefined reference to > `iupKeyCodeToName(int)' > collect2: error: ld returned 1 exit status > makefile:18: recipe for target 'sample.exe' failed > make: *** [sample.exe] Error 1 > > libiup.a seem to have iupKeyCodeToName: > daniel@daniel-desktop:~/iup-build/output/iup-3.22-i686-w64-mingw32/i686-w64-mingw32/lib$ > nm -C -A *.a | grep iupKeyCodeToName > libiup.a:iup_key.o:00000340 T iupKeyCodeToName > libiup.dll.a:d000887.o:00000000 I _imp__iupKeyCodeToName > libiup.dll.a:d000887.o:00000000 T iupKeyCodeToName > > So I have no idea what is causing this, I've also tried doing the same but > natively on Windows 7 also using mingw, but fail with the exact same error. > I haven't tried other compilers yet. > > I can however compile this example for Linux on Ubuntu 16.04 using gcc > without any issues. > > Any hints on how to solve this would me much appreciated. > _______________________________________________ > Iup-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/iup-users >
_______________________________________________ Iup-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/iup-users
