the lib has a package config listing the dependencies as
So I've Imported these but still I get a linker errorRequires.private: gl x11 xrandr xxf86vm
Libs: -L${libdir} -lglfw
Libs.private: -lrt -lm
Even though I've linked to libX11.so?/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crtn.o/usr/bin/ld: /usr/local/lib/libglfw.a(x11_clipboard.c.o): undefined reference to symbol 'XConvertSelection'
/usr/bin/ld: note: 'XConvertSelection' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libX11.so so try adding it to the linker command line
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libX11.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
The lib works fine from gcc so I don't see what the problem is.
The trace, clearly shows that the lib is loaded
So any ideas how to get around the problem?pbcompiler ~/Desktop/glfw3/libglfw3.pbi
******************************************
PureBasic 4.61 (Linux - x86)
******************************************
Loading external modules...
Starting compilation...
838 lines processed.
Creating the executable.
Error: Linker
/usr/bin/ld: mode elf_i386
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crti.o
/usr/lib/gcc/i686-linux-gnu/4.6/crtbegin.o
purebasic.o
(Array.a)Array.o
(Array.a)CopyArray.o
(Array.a)FreeArray.o
/lib/i386-linux-gnu/libc.so.6
(/usr/lib/i386-linux-gnu/libc_nonshared.a)elf-init.oS
/lib/i386-linux-gnu/ld-linux.so.2
-lXxf86vm (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libXxf86vm.so)
-lXrandr (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libXrandr.so)
-lX11 (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libX11.so)
-lGL (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libGL.so)
-lGLU (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libGLU.so)
-lrt (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/librt.so)
-lm (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libm.so)
(/usr/local/lib/libglfw.a)fullscreen.c.o
(/usr/local/lib/libglfw.a)init.c.o
(/usr/local/lib/libglfw.a)input.c.o
(/usr/local/lib/libglfw.a)opengl.c.o
(/usr/local/lib/libglfw.a)time.c.o
(/usr/local/lib/libglfw.a)window.c.o
(/usr/local/lib/libglfw.a)x11_fullscreen.c.o
(/usr/local/lib/libglfw.a)x11_init.c.o
(/usr/local/lib/libglfw.a)x11_input.c.o
(/usr/local/lib/libglfw.a)x11_joystick.c.o
(/usr/local/lib/libglfw.a)x11_opengl.c.o
(/usr/local/lib/libglfw.a)x11_time.c.o
(/usr/local/lib/libglfw.a)x11_window.c.o
(/usr/local/lib/libglfw.a)error.c.o
(/usr/local/lib/libglfw.a)x11_clipboard.c.o
(/usr/local/lib/libglfw.a)x11_gamma.c.o
(/usr/local/lib/libglfw.a)x11_keysym2unicode.c.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)CopyStructure.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)FreeStructureStrings.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)InitDynamicStructure.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)IsDynamicStructure.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)DynamicFunctions.o
(/home/andrew/purebasic46/purebasic/compilers/systembase.a)System.o
(/home/andrew/purebasic46/purebasic/compilers/stringmanager.a)FastAllocateString.o
(/home/andrew/purebasic46/purebasic/compilers/stringmanager.a)FastStringCopy.o
(/home/andrew/purebasic46/purebasic/compilers/stringmanager.a)InitString.o
(/home/andrew/purebasic46/purebasic/compilers/stringmanager.a)FreeString_ASM.o
-ldl (/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libdl.so)
-lgcc_s (/usr/lib/gcc/i686-linux-gnu/4.6/libgcc_s.so)
/lib/i386-linux-gnu/libc.so.6
(/usr/lib/i386-linux-gnu/libc_nonshared.a)atexit.oS
/lib/i386-linux-gnu/ld-linux.so.2
-lgcc_s (/usr/lib/gcc/i686-linux-gnu/4.6/libgcc_s.so)
/usr/lib/gcc/i686-linux-gnu/4.6/crtend.o
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crtn.o/usr/bin/ld: /usr/local/lib/libglfw.a(x11_clipboard.c.o): undefined reference to symbol 'XConvertSelection'
/usr/bin/ld: note: 'XConvertSelection' is defined in DSO /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libX11.so so try adding it to the linker command line
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/libX11.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
My attempts to get it to link in PB
Code: Select all
ImportC "-Wl,--trace" : EndImport :print the trace
ImportC "-Wl,--warn-unresolved-symbols" : EndImport ;turn errors to warnings
ImportC "-Wl,--allow-multiple-definition" : EndImport ; if multiple defs takes the first one
ImportC "-Wl,--export-dynamic" : EndImport ;export all symbols
ImportC "-Wl,--start-group" : EndImport ; supposed to loop around resolving symbols
ImportC "-lXxf86vm"
ImportC "-lXrandr"
ImportC "-lX11"
ImportC "-lGL"
ImportC "-lGLU"
ImportC "-lrt"
ImportC "-lm"
ImportC "/usr/local/lib/libglfw.a"
ImportC "-Wl,--end-group" : EndImport
and I don't see any option to pass ld commands on the command line!
I'd really like to know how we can do this in PB.