Reputation: 4153
I want to use CUDPP library in my project. I've downloaded sources from project page. Unfortunatly, when I ran "make", there was only static library build. I've looked into Makefile files and haven't found any dynamic lib configuration. I don't want to keep static library with the project - it's totally non-portable way.
My question is: how can I build .so dynamic library of CUDPP, without writing my own Makefile/compiling it manually? Maybe someone already did it?
EDIT: I've replaced "g++" with "g++ -fPIC", "gcc" with "gcc -fPIC" and "nvcc" with "nvcc -Xcompiler -fpic". When I unpack obj files from archive, and link them to shared lib, I've got no error. However, my application crashes at start, when linked with this library.
Upvotes: 3
Views: 3387
Reputation: 21108
Are you also using -shared
to create the library? You shouldn't need to extract anything from an archive if it is working correctly.
If you run ldd
on your executable it will show you what dynamic linking is required by the app and you can check that the -fPIC
etc. worked correctly. Also make sure that the .so
library is on your LD_LIBRARY_PATH
(sorry if that's obvious, no harm in checking).
Upvotes: 0
Reputation: 931
when you compile pass the flag -Xcompiler -fpic
to nvcc. If you link against any cuda libraries make sure you've linked to the shared libs, otherwise you can't link it. Hopefully that's all you need.
Upvotes: 3