Jump to ID:
QNX Foundation Classes

Project Home




Project Info
Forum Topic - Build errors (and warnings): (7 Items)
Build errors (and warnings)  

I can't get my projects to compile properly when I try to include part of the QFC. For example, just including <qfc/
timerbank> generates compiler errors:

/home/veldhuijzen/ide-4.5-workspace/QFC/public/qfc/timerbank: In member function 'void QNXAPI::TimerBank<T, V, R>::
Cancel(QNXAPI::TimerTree::TimerNode*, sigc::slot<bool, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil,
/home/veldhuijzen/ide-4.5-workspace/QFC/public/qfc/timerbank:127: error: 'priority' was not declared in this scope
/home/veldhuijzen/ide-4.5-workspace/QFC/public/qfc/timerbank:131: error: request for member 'Cancel' in 'iter->second', 
which is of non-class type 'QNXAPI::TimerTree*'

This also happens when I try to compile the Serv example. I am using QDE 4.5, and QNX 6.4.0 with gcc 4.2.4.
Any hints on how to solve these problems?

Further there are some warnings about deprecated conversions from string constant to 'char*'.
Re: Build errors (and warnings)  

It works fine for me (IDE 4.5 gcc 4.2.3 & gcc 3.3.5).

Do you have gcc 3.3.5 available on your system (as this is the compiler defined in the project for Serv by default)?

Could you post the entire output from the console window when you try to build.
Re: Build errors (and warnings)  
Actually, I tried switching the compiler on Serv to 4.2.3, and I see exactly the same problem.  There is a bug in the 
Cancel() method of TimerBank which I have fixed and committed.  If you update QFC from the repository it should work now
Re: Build errors (and warnings)  
Thanks, Serv does compile now.

When I try to instantiate the TimerBank myself, I get the following error:
/home/veldhuijzen/workspace/QFC/public/qfc/ipc:697: error: 'SETIOV' was not declared in this scope
I guess I'm missing something here. I just want a timerbank and add some timed callbacks to it.
Can you give some hints on how to proceed?
Re: Build errors (and warnings)  
SETIOV is defined in unistd.h (which is included in the example Serv.h).

I have added unistd.h to ipc; thanks for pointing this out.

Are you sure you want a timerbank as opposed to a timertree?  A timerbank is a priority vector of timertrees (i.e. 255 
timertrees, with callbacks from each tree executing at the associated priority).

If you are just trying out the interface, a timertree may be sufficient.

Re: Build errors (and warnings)  
A timertree is indeed sufficient for now.

I have another question. As far as I can see it is not possible to create a Thread and let it run on a specific priority
? I've included a patch which should add that to PosixAPI::Thread. Haven't tested it yet, but I will test it soon.
It also fixes the docgen.Doxyfile for the QFC project.

Attachment: Text thread.patch 2.39 KB
Re: Build errors (and warnings)  
Yes, thanks.  I have only developed servers with this library, and as such priority manipulation has not been required 
(servers always inherit priority).  I have committed your patch with a minor name change (nice thing about C++ 
namespaces, is that there is no need to create mangled names for types).