Compiling against 3.1 SDK in backward compatible way?


I’m building a CUDA app (for BOINC) and other users are having problems with it - of course it works fine for me!

I’ve got the latest 3.1 SDK on my Mac (running Snow Leopard), and I have built a 32 bit and 64 bit version of the app.

The app dynamically links to libcuda, libcudart (and libtlshook). I believe the correct thing to do it to ship my libcudart.dylib and libtlshook.dylib with the executable (BOINC automatically sets DYLD_LIBRARY_PATH to find these correctly). However, does this mean that the user needs CUDA 3.1 (i.e. a 3.1. version on libcuda.dylib installed?

Is it possible to compile an app that would be compatible with an earlier version on libcuda (e.g. 2.3 or 3.0)? Presumably not for the 64 bit app, but if I could for the 32 bit app that would be great.

Conversely, if I’d built the code on a machine running the 2.3 SDK, would that work on a machine that had the 3.0 or 3.1 libcuda installed?


  • Iain