[英]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.