konstruktory statickych trid a gnu c na linuxu

Linux linux na winbase.software602.cz
Pátek Červen 4 17:16:47 CEST 1999


> 
> Muzete ukazat maly, dostatecne ilustrativni priklad ?
> 

Jedna se konstruktory statickych instanci trid.

Ilustrativni priklad, (no nejni z nejmensich - omlouvam se) :

Podobny priklad z predchoziho prispevku jsem si taky zkusil prelozit, ale
neprekladal jsem jej primo (g++ zdroj.cpp - to funguje spravne), ale
pomoci makefile (upraveny z makefile cele aplikace), ktery nalseduje.
Preklad bez makefile jsem jaksi zapomel zkusit :-(((

------------------------------------------------

SRC_ROOT=/wb
SRV_DIR=$(SRC_ROOT)/wb51

obj_dir = $(SRV_DIR)/objs
inc_dirs =
defines  = 
commflg  = 

comp_opt_optim   = -c $(defines) $(inc_dirs) $(commflg) -O3 -o$@
comp_dbg_optim   = -ggdb
compiler      = g++
compiler_cmd  = $(compiler) $(comp_opt_optim) $(comp_dbg_optim) 

linker = ld
libs = /usr/lib/libncurses.a /usr/lib/libpthread.a /usr/lib/libc.a /usr/lib/libm.a /usr/lib/libgcc.a 
startup = /usr/lib/gcrt1.o /usr/lib/crti.o /usr/lib/crtn.o

program = pokus

objlst  = $(obj_dir)/pokus.o

all : $(obj_dir)/$(program)

$(obj_dir)/wbserver : $(objlst)
	$(linker) $(startup) $(objlst) $(libs) -o$(obj_dir)/$(program)
	chmod 777 $(obj_dir)/$(program)

$(obj_dir)/pokus.o    : $(SRV_DIR)/pokus.cpp
	$(compiler_cmd)	$(SRV_DIR)/pokus.cpp

-------------------------------------------------------

Takze timto makefile jsem prekladal jednoduchy priklad pokus.cpp (podobny 
byl napsany v predchozim priklade) a takto prelozeny program automaticky
nespoustel konstruktory statickych instanci trid. Ted uz vim, ze chyba je
nekde v makefile a ne v implementaci gnu c v Linuxu, protoze prelozenim
bez makefile (g++ pokus.cpp) funguje vse spravne. Asi mam prilinkovane
spatne knihovny, i kdyz linker zadne chyby nehlasi. Az na startup pouzivam
stejne knihovny na FreeBSD, kde k tomuto problemu s konstruktory
nedochazi. Dekuji za odpoved.

Jan Sixta



Další informace o konferenci Linux