Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
Forum Topic - link to shared libraries *.so: (2 Items)
   
link to shared libraries *.so  
Hello.

On my io-net drive, it was easy to ling against shared libs.
In my driver I need to link to a HW specific access shared lib.

With io-pkt, I do not understand what happends...

I entrer name of shared libs, with the dynamic parameter set, but it tries to load a static lib anyway...

make[2]: *** No rule to make target `libmen-oss.a', needed by `G:/CVS/work/QNX/src/DRIVERS/devnp/men-z087/x86/dll-g/
devnp-men-z087_g.so'.

And if you specify the LIBS+=-Bdynamic men-oss men-dbg drvrS men-chameleon :

make[2]: *** No rule to make target `lib-Bdynamic.a', needed by `G:/CVS/work/QNX/src/DRIVERS/devnp/men-z087/x86/dll-g/
devnp-men-z087_g.so'.
make[2]: *** No rule to make target `libmen-oss.a', needed by `G:/CVS/work/QNX/src/DRIVERS/devnp/men-z087/x86/dll-g/
devnp-men-z087_g.so'.
make[2]: Target `all' not remade because of errors.

Why ?

Thank you very much for your help.
Re: link to shared libraries *.so  
Hi, 

I have  this problem since 6.4.
If you have a dynamic library xxx.so, you get a dependency to xxx.a file.
This is a problem of the current qnx make tree.
If you make your project with eclipse, you get a ".qnx_internal.mk" included by common.mk, which solves the problem.
A not very nice workaround is to generate a dummy "xxx.a"  in the library install path.
If you have installed both, "xxx.a" and "xxx.so", your build is also working.
But the make run uses the dependency for xxx.a to link against xxx.so.

Perhaps one of the gnu make Guru's can fix this pronblem. I am wondering why this hidden strange file ".qnx_install" is 
used with eclipse.

Regards 
Michael 

> Hello.
> 
> On my io-net drive, it was easy to ling against shared libs.
> In my driver I need to link to a HW specific access shared lib.
> 
> With io-pkt, I do not understand what happends...
> 
> I entrer name of shared libs, with the dynamic parameter set, but it tries to 
> load a static lib anyway...
> 
> make[2]: *** No rule to make target `libmen-oss.a', needed by `G:/CVS/work/QNX
> /src/DRIVERS/devnp/men-z087/x86/dll-g/devnp-men-z087_g.so'.
> 
> And if you specify the LIBS+=-Bdynamic men-oss men-dbg drvrS men-chameleon :
> 
> make[2]: *** No rule to make target `lib-Bdynamic.a', needed by `G:/CVS/work/
> QNX/src/DRIVERS/devnp/men-z087/x86/dll-g/devnp-men-z087_g.so'.
> make[2]: *** No rule to make target `libmen-oss.a', needed by `G:/CVS/work/QNX
> /src/DRIVERS/devnp/men-z087/x86/dll-g/devnp-men-z087_g.so'.
> make[2]: Target `all' not remade because of errors.
> 
> Why ?
> 
> Thank you very much for your help.