Я пытаюсь скомпилировать некоторые примеры проектов, предоставленные с помощью Nvidia OptiX SDK с Qt-Creator.Компиляция Optix с Qt Creator - проблемы с связыванием
Я написал .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
, сгенерированный .ptx-файл из файлов .cu связан с объектными файлами. Поэтому файлы .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-precompiled-samples) и .o-файл.
Заранее благодарен!
EDIT: Nevermind Я сам понял. Ошибки уже говорили мне, что я пропустил ссылку на дополнительную библиотеку. Вот почему я должен был заранее:
LIBS += -lcuda -lcudart -loptix -loptixu -lsutil -L/usr/local/cuda-6.5/lib64 -L/home/Remb/NVIDIA-OptiX-SDK-3.7.0-linux64/lib64
Обычная вещь, чтобы сделать было бы ответить на свой вопрос, с тем, что вы сделали, чтобы исправить это. Вы можете ответить на свой вопрос. –