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