为什么这个共享库没有链接?

时间:2014-04-14 07:47:47

标签: compiler-construction cuda compilation linker shared-libraries

我正在尝试使用GPUocelot在X86 cpu上生成GPGPU基准测试的痕迹。出于这个原因,我正在使用-locelot和-locelotTrace链接器标志编译基准。我的基准测试编译并执行正常。但是,没有生成跟踪。

编译命令:

nvcc -arch=sm_20 bfs.cu -o bfs -locelot -locelotTrace

libocelot.solibocelotTrace.so位于/usr/local/libLD_LIBRARY_PATH=/usr/local/lib

我使用ldd验证了链接到此二进制文件的共享库。我可以看到libocelot.so已关联,但我看不到libocelottrace.so

我认为这是导致跟踪无法生成的问题。如何确保二进制文件链接到libocelottrace.so

1 个答案:

答案 0 :(得分:1)

  

我可以看到libocelot.so已关联,但我看不到libocelottrace.so

这可能是因为

  • 您的编译器使用--as-needed链接器标志(如果您使用nvcc标志调用-v,您应该会看到)和
  • 您的命令行不正确。请尝试nvcc -arch=sm_20 bfs.cu -o bfs -locelotTrace -locelot(命令行上的库的顺序很重要)。