У меня ошибка в компоновщике
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaMalloc@8
1>kernel.cu.obj : error LNK2001: unresolved external symbol _cudaFree@4
Я видел похожий вопрос, добавленный здесь:
Нерешенные внешние символы в программе CUDA для начинающих
Но он уже добавил эту информацию компоновщику.
Так в чем же проблема?
Я использую Visual Studio 2010 Premium с CUDA SDK 5.0 и Nsight 3.0 для VS
Исходный код здесь: http://pastebin.com/DfdfSfWd
(Это пример, сгенерированный Visual Studio для созданного нового проекта для CUDA 5.0)
Настройки для линкера
Свойства конфигурации-> Linker-> General-> Дополнительные каталоги библиотеки:
$ (CudaToolkitLibDir) $ (CUDA_LIB_PATH) $ (CUDA_PATH) \ lib \ $ (PlatformName)
Свойства конфигурации-> Linker-> Input-> Дополнительные зависимости
cuda.lib; cudart.lib; и другие библиотеки ..
Но в свойствах я вижу, что у CUDA есть собственный Linder, «CUDA Linker», а у него нет
Дополнительные библиотечные каталоги
а также
Дополнительные зависимости
поэтому я установил эти свойства, но ничего не изменилось, компоновщик по-прежнему имеет проблемы.
[РЕДАКТИРОВАТЬ]Хорошо, ошибка когда я меняю
Свойства конфигурации-> CUDA C / C ++ -> Устройство-> Генерация кода
от
compute_10, sm_10
в
compute_20, sm_20
и добавьте флаг -dc для CUDA C / C ++
Хорошо, я нашел, как настроить проект для отдельной компиляции & Ссылка, ниже у нас есть пример проекта, где он работает:
пример simpleSeparateCompilation
Других решений пока нет …