关于linux:CUDA CUDPP .so建设

CUDA CUDPP .so building

我想在我的项目中使用 CUDPP 库。我已经从项目页面下载了源代码。不幸的是,当我运行"make"时,只有静态库构建。我查看了 Makefile 文件并没有找到任何动态库配置。我不想在项目中保留静态库 - 它完全是不可移植的方式。

我的问题是:如何构建 CUDPP 的 .so 动态库,而无需编写自己的 Makefile/手动编译它?也许有人已经这样做了?

编辑:我已将 "g " 替换为 "g -fPIC",将 "gcc" 替换为 "gcc -fPIC",并将 "nvcc" 替换为 "nvcc -Xcompiler - fpic"。当我从存档中解压缩 obj 文件并将它们链接到共享库时,我没有收到任何错误。但是,当与此库链接时,我的应用程序在启动时崩溃。


编译时将标志 -Xcompiler -fpic 传递给 nvcc。如果您链接到任何 cuda 库,请确保您已链接到共享库,否则您无法链接它。希望这就是您所需要的。


您是否也在使用 -shared 来创建库?如果档案工作正常,您不需要从档案中提取任何内容。

如果您在可执行文件上运行 ldd,它将显示应用程序需要哪些动态链接,您可以检查 -fPIC 等是否正常工作。还要确保 .so 库在您的 LD_LIBRARY_PATH 上(很抱歉,如果这很明显,检查无害)。