2015-03-03 31 views
1

我想编译一些使用Qt-Creator从Nvidia OptiX SDK提供的示例项目。使用Qt Creator编译Optix - 链接问题

我写的pro文件和编辑它为我自己这方面的帮助需求Compiling Optix with Qt Creator!

我有完全一样的.pro文件,但我编辑CUDA和Optix公司的方向,但我不能完全编译,因为(小片段,但所有的错误这里有同样的原因)

/home/Rembold/QTProjects/build-HelloOptix-Desktop-Debug/../HelloOptix/sample1.c:90: undefined reference to `sutilHandleError' 
/home/Rembold/QTProjects/build-HelloOptix-Desktop-Debug/../HelloOptix/sample1.c:91: undefined reference to `sutilHandleError' 

可能从NVIDIA-OptiX-SDK-X.X.X-linux64/SDK/sutil干。

但是,如果我注释掉行optix.CONFIG += no_link,则将.cu文件生成的.ptx文件链接到对象文件。因此.ptx文件被视为目标文件,而Qt给我的语法错误。

所以,这一切的一切,让optix.CONFIG += no_link未定义的引用,没有这一行,编译器试图将.ptx文件链接,并返回一个语法错误

/usr/bin/ld:ptx/draw_color.cu.ptx: file format not recognized; treating as linker script 
/usr/bin/ld:ptx/draw_color.cu.ptx:2: syntax error 

是否有Qt的办法只是忽略了一定链接步骤中的文件类型,还是我在其他地方有错误? 在这两种情况下,构建步骤都会生成正确的.ptx文件(与给定的SDK预编译样本相比)和.o文件。

在此先感谢!

编辑:没关系我自己想通了。错误已经告诉我,我错过了链接一个额外的库房。这就是为什么我必须前进:

LIBS += -lcuda -lcudart -loptix -loptixu -lsutil -L/usr/local/cuda-6.5/lib64 -L/home/Remb/NVIDIA-OptiX-SDK-3.7.0-linux64/lib64 
+3

惯用的事情会回答你自己的问题,不管你做了修复。你可以回答你自己的问题。 – 2015-03-03 19:29:34

回答

2

我想通了,我忘了添加OptiX的sutils库。 这里是我加入到我的LIBS:

LIBS += -lcuda -lcudart -loptix -loptixu -lsutil -L/usr/local/cuda-6.5/lib64 -L/home/Remb/NVIDIA-OptiX-SDK-3.7.0-linux64/lib64