簡體   English   中英

使用Qt Creator編譯Optix-鏈接問題

[英]Compiling Optix with Qt Creator - Linking Issues

我正在嘗試使用Qt-Creator編譯Nvidia 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'

這可能源自NVIDIA-OptiX-SDK-XXX-linux64/SDK/sutil

但是,如果我注釋掉optix.CONFIG += no_link這一行, 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

我自己弄清楚,忘了添加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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM