QNX 6.5 PhAB linking problem

I have a PhAB program that has a linking problem.

I want to include a non-QNX library in the link.
I use project/properties/Build and Debug Options and put in the name of the library.

In the common.mk I add a -L directory to EXTRA_LIBVPATH so that it can be found. This worked under QNX 6.3.2.

Under 6.5, the module gets created but I get a make error:

make[2] *** No rule to make target ‘xxxxxx.a’, needed by …

I tried to trace back through QNX’s “WONDERFULL” make files to see why this was occurring, and ran into a dead end.

Does anyone know how to do this?

I think this is actually a different problem but I’ve had something similar happen when I moved a header files around and added a new include path.

It appears that the build creates .d files that specify the location of all the included header files. If something is moved, or if a new path is added, these files are not modified so a new build will give the same error. A clean and rebuild will not fix the problem, you must manually delete the .d files first and then build.

Having said all this, I’m using the IDE for a non-PhAB project so this probably won’t help except to know that others are experiencing similar problems moving from 6.4 to 6.5.

Steven,

Thanks for the thought.   I've had it confirmed that this is a problem only when compiling on QNX self hosted.   The IDE does not have the problem.    I've also had it confirmed that it has nothing to do with PhAB or any of the project files.   There was a change in the "make" tools from 6.3.2 to 6.5.   I haven't checked to see if the problem exists in 6.4.   I'm hoping that QNX will step up and fix this.   

On the other hand, a simple work around for now is to no put my object files in libraries, and to link them in by adding the object to LDFLAGS in common.mk.   The only reason I say work around and not solution is that the customer wants libraries.

Hi Maschoen,

I got the same problem with QNX6.4. I bought a sensor with its library, and cannot be linked in PhaB. Could you please tell me your alternative method in details, I don’t know how to edit the common.mk file at all.

Many thanks in advance!

I hope that if you have a support contract with QNX that you will contact them and request a fix.
The problem as I understand it is with the “tools”, not Photon.
This is an important distinction as the company line on Photon seems be that it is a mature or finished product and they are not modifying or supporting it anymore. That sounds crazy to me but I’ve heard it from more than one person.

The hacky/kludgy solution I’ve found is to either put your library, or at least a soft link to the library in the x86/o and x86/o-q directory. That is if you are compiling for x86.
From there I think you just use the Photon menu’s to include the library as documented. If you run into trouble, comment again and I’ll look up exactly what I did. It’s not in front of me now.
This is the type of stuff that would be nicer if it was documented.