helo, i try to make bacnetstack. 1) build static lib .a works (i guess) 2) build demos using lib stops error not each time in first demo-directory and all demos using the lib maybe the lib is rebuild for every demo (or at least in some cases) ? maybe an error in makefile (youtube: a whitespace character .. drives crazy)
xxx/ include/ src/ lib/ <- lib_xxx.a demos/ demo1/ demo2/ xxx/make first demo breaks (but cause of order) xxx/demo/make first demo works, second breaks same demo that breaks, but there is one that does not. generally the lib works. difference in demo1/Makefile and demo2/Makefile is a $(TARGET).map that is removed in 'clean'-target ( i have not heard about .map and did not find enough info. so no clue ) the working demo does not use the missing symbol. when using `make -d ..` there is a line 'pruning lib_xxx.a' and i found something with 'simplifying decision trees' (wikipedia). what does pruning lib means ? is there a step where only parts depending on wrong decision are extracted from a static library so that in the end symbols are missing ? ( similiar to wrong order of object-files when linking ) nm lib_xxx.a | grep ?symbol? shows symbols twice: T (in .txt) with address and U (undefined) i found (google): small differences in names, but demangling? only with c++, not c. and i have equal symbols ( T and U ) maybe the linker finds the U-entry first and gives up ? ( but one demo works ) guess, the lib is ill. hope, my English is not that bad. hope, You can help. thanks in advance, andreas