Я пытаюсь создать ссылку на объектный файл, созданный 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 не подходит для реального приложения.