[ indy @ 17.11.2004. 19:53 ] @
Pozdrav,
izgleda da se ne razumem baš u kompajliranje.
Naime, želim da napišem aplikaciju u FLTKu (pod Linuksom), ali tako da krajnji korisnik ne mora da ima FLTK (to beše statičko linkovanje).
Ali ne umem to da uradim. Uredno sam kompajlirao fltk, ali rezultati sa g++ i fltk-config --ldstaticflags ne daju nikakve rezultate, jer sve propadne...

Evo deo onog šta dobijam:
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x10): undefined reference to `fltk::Window::draw()'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x14): undefined reference to `fltk::Window::handle(int)'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x18): undefined reference to `fltk::Window::layout()'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x1c): undefined reference to `fltk::Window::draw_overlay()'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x20): undefined reference to `fltk::Window::destroy()'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x24): undefined reference to `fltk::Window::flush()'
ConfWindow.o(.gnu.linkonce.d._ZTVN4fltk18DoubleBufferWindowE+0x28): undefined reference to `fltk::Window::create()'
ConfWindow.o(.gnu.linkonce.t._ZN18ConfWindowD1Ev+0x11): In function `ConfWindow::~ConfWindow [in-charge]()':
: undefined reference to `fltk::Window::~Window [not-in-charge]()'

A nm daje da npr draw_overlay postoji:
[indy@hunin::src]$ nm /usr/local/lib/libfltk.a|grep draw_overlay
U _ZN4fltk6Window12draw_overlayEv
U _ZN4fltk6Window12draw_overlayEv
U _ZN4fltk6Window12draw_overlayEv
U _ZN4fltk6Window12draw_overlayEv
U _ZN4fltk6Window12draw_overlayEv
00000830 T _ZN4fltk6Window12draw_overlayEv
00000860 T _ZN4fltk6Window14redraw_overlayEv
U _ZN4fltk6Window12draw_overlayEv

Ima li neko savet, ideju ili bilo šta drugo. FLTK je verzije 2.
[ Dejan Lozanovic @ 18.11.2004. 18:07 ] @
ako koristis fltk 2.0 cvs on se za sada kompajlira samo u static varijanti jer je jos uvek u razvojnoj fazi mada je poprilicno stabilan, a ukoliko koristis neki 1.1.x onda kada skines source prilikom pokretanja configure skripte treba naglasiti da hoces i staticke biblioteke.


u svakom slucaju mozes uvek da proveris koje dinamicke biblioteke tvoj program koristi sa
komandom ldd ime_fajla.
[ indy @ 19.11.2004. 18:17 ] @
Pa i treba mi statičko linkovanje.
Ali problem je rešen. Stvar je u tome što izlaz komande fltk-config --ldstaticflags treba da stavim iza imena fajla kod kompajliranja. Znači, za spraviteku:
Code:
$(CXX) $(CXXFLAGS) -o $(APP) $(APP).cxx $(LDFLAGS)

pri čemu je:
Code:
LDFLAGS:=`fltk-config --ldstaticflags`