使用Qt Creator编译Optix-链接问题

Compiling Optix with Qt Creator - Linking Issues

本文关键字:链接 问题 Optix- 编译 Qt Creator 使用      更新时间:2023-10-16

我正在尝试用Qt-Creator编译英伟达OptiX SDK提供的一些示例项目。

我编写了.pro文件,并根据自己的需要进行了编辑,这有助于用Qt Creator编译Optix!

我有完全相同的.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'

可能来源于CCD_ 1。

但是,如果我注释掉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文件。

提前感谢!

编辑:我自己想明白了。错误已经告诉我,我错过了链接一个额外的libary。这就是我必须前进的原因:

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

我自己想,我忘了添加OptiX的缝合线库。以下是我在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