Hello all,
First of all, I’m new to QNX so please apologize if my question is obvious
(and please tell me why
I’m porting an existing C++ project to QNX 6.2.1 (x86 & ARM platforms) and I
felt into some troubles dealing with weak symbols.
I have this class which defines a lot of its methods as inline in the header
file. I’m compiling under QNX for Windows 2000 command line process (no
IDE). My compilation flags are :
QCC -V gcc_ntox86 -W
c,-O0,-fno-inline,Wall,-fno-weak,-fvolatile,-fno-builtin -I[include
paths] -c -o objectName.o sourceName.cpp
It looks like all the inline methods :
inline int GetLayersOffset () const
{
return mLayersOffset;
}
(mLayersOffset being a class member)
are defined as “weak” in the object file :
nm objectName.o | grep W
(…)
00000000 W GetLayersCount__C4CTPF
00000000 W GetLayersOffset__C4CTPF
00000000 W GetLayers__4CTPF
(…)
Actually, I didn’t notice it until the final link step where all the “weak”
symbols couldn’t be linked to the final application, thus raised a bunch of
“unresolved symbol” errors.
So my questions are :
- Why are the inline methods symbols declared as “weak” ?
- How to link all together the “weak” symbols and the final application ?
Thanks for any help
Paul Favale
VST - France