Проблемы со ссылками на объектный файл, созданный с помощью cuda nvcc - PullRequest
0 голосов
/ 04 февраля 2012

Я пытаюсь создать ссылку на объектный файл, созданный NVCC.Вот очень простая «библиотека»:

//foo.cu:
void foo() {
}

И файл, который использует «библиотеку»:

//main.cu:
extern void foo();

int main(){
foo();
}

Обратите внимание, я обхожу необходимость включения файла в этой простой установкеобъявив функцию прямо в файле.Вот команда, которую я пытался построить:

nvcc -c foo.cu -arch=sm_20
nvcc main.cu foo.o -arch=sm_20

Почему это не работает с NVCC?Вторая команда производит тонны:

warning: null character(s) ignored
error: unrecognized token

Я пробовал на другой машине с другой установкой CUDA (4.0).Тот же странный вывод компилятора / компоновщика.

Я также попытался использовать extern "C" вместо искажения имени в C ++.Такое же поведениеКроме того, искажение имени C не подходит для реального приложения.

1 Ответ

2 голосов
/ 04 февраля 2012

Невероятно, изменение порядка аргументов во втором вызове исправляет это.

nvcc foo.o main.cu -arch=sm_20

(Вздох)

...