2015-03-03 134 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