2015-03-03 4 views
1

Я пытаюсь скомпилировать некоторые примеры проектов, предоставленные с помощью 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 
+3

Обычная вещь, чтобы сделать было бы ответить на свой вопрос, с тем, что вы сделали, чтобы исправить это. Вы можете ответить на свой вопрос. –

ответ

2

я понял сам, я забыл добавить библиотеки sutils в 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