Я новичок в OpenCL. Когда я попытался примеры с сайта Altera, я получил несколько ошибок LNK2001 следующегоVisual studio 14.0 LNK2001 (неразрешенный внешний символ) с OpenCL
Severity Code Description Project File Line
Error LNK2001 unresolved external symbol __imp_sprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_hal_mmd.obj) 1
Error LNK2001 unresolved external symbol __imp___iob_func hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_hal_mmd.obj) 1
Error LNK2001 unresolved external symbol __imp_fprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_hal_mmd.obj) 1
Error LNK2001 unresolved external symbol __imp_sprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_mem.obj) 1
Error LNK2001 unresolved external symbol __imp___iob_func hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_offline_hal.obj) 1
Error LNK2001 unresolved external symbol __imp__set_output_format hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_printf.obj) 1
Error LNK2001 unresolved external symbol __imp_fprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_profiler.obj) 1
Error LNK2001 unresolved external symbol __imp_sprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_program.obj) 1
Error LNK2001 unresolved external symbol __imp___iob_func hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_support.obj) 1
Error LNK2001 unresolved external symbol __imp_vsprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_support.obj) 1
Error LNK2001 unresolved external symbol __imp_vsnprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_support.obj) 1
Error LNK2001 unresolved external symbol __imp_vfprintf hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_support.obj) 1
Error LNK2001 unresolved external symbol __imp___iob_func hello_world C:\Users\S_KW\OpenCL\hello_world\alteracl.lib(acl_threadsupport.obj) 1
Error LNK1120 8 unresolved externals hello_world C:\Users\S_KW\OpenCL\hello_world\bin\hello_world.exe 1
Error IntelliSense: argument of type "void (*)(const char *errinfo, const void *, size_t, void *)" is incompatible with parameter of type "void (__stdcall *)(const char *, const void *, size_t, void *)" hello_world c:\Users\S_KW\OpenCL\hello_world\host\src\main.cpp 145
Warning LNK4044 unrecognized option '/LC:\Users\S_KW\arrow_c5sockit_bsp\arm32\lib'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Warning LNK4044 unrecognized option '/lalterahalmmd'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Warning LNK4044 unrecognized option '/lalterammdpcie'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Error LNK2001 unresolved external symbol __imp_vsnprintf hello_world C:\Users\S_KW\OpenCL\hello_world\MSVCRT.lib(vsnprintf.obj) 1
Error LNK2001 unresolved external symbol __imp__vsnprintf hello_world C:\Users\S_KW\OpenCL\hello_world\MSVCRT.lib(vsnprintf.obj) 1
Error LNK2001 unresolved external symbol __imp___iob_func hello_world C:\Users\S_KW\OpenCL\hello_world\pkg_editor.lib(pkg_editor.obj) 1
Error LNK2001 unresolved external symbol __imp_fprintf hello_world C:\Users\S_KW\OpenCL\hello_world\pkg_editor.lib(pkg_editor.obj) 1
Я уже добавлен путь к LIBS и файлы голова. Я смущен этими ошибками. Что я могу сделать, чтобы решить эту проблему?
---------------------------- ОБНОВЛЕНИЕ ----------------- -------------
ОК, как сказал Хади Брайс, я добавил его к дополнительным зависимостям. И все старые ошибки исчезли. Но наступает новая.
Severity Code Description Project File Line
Error LNK1120 1 unresolved externals hello_world C:\Users\S_KW\OpenCL\hello_world\bin\hello_world.exe 1
Error LNK2001 unresolved external symbol __imp_sprintf hello_world C:\Users\S_KW\OpenCL\hello_world\OpenCL.lib(icd_windows.obj) 1
Warning LNK4044 unrecognized option '/LC:\Users\S_KW\arrow_c5sockit_bsp\arm32\lib'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Warning LNK4044 unrecognized option '/lalterahalmmd'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Warning LNK4044 unrecognized option '/lalterammdpcie'; ignored hello_world C:\Users\S_KW\OpenCL\hello_world\LINK 1
Это как-то связано с OpenCL.lib, я думаю. Кажется, что lib не может видеть функцию printf. Но я думаю, что printf построен на C++. Это сбивает с толку. Кто-то знает, как справиться с этим? Большое спасибо!!!
Укажите, где вы ввели пути к libs и файлам заголовков? Компилятор жалуется на функции CRT, а не на функции OpenCL. –
Я добавил их на страницу свойств. Дополнительно включают каталоги и дополнительные библиотечные каталоги. – Kaiyuan
Этого недостаточно. Вам нужно добавить нужные имена библиотек в 'Linker/Input/Additional Dependencies'. –