Искажает ли nvcc имена в своих сообщениях об ошибках иначе, чем в создаваемом им скомпилированном коде?C++

Программы на C++. Форум разработчиков
Anonymous
Искажает ли nvcc имена в своих сообщениях об ошибках иначе, чем в создаваемом им скомпилированном коде?

Сообщение Anonymous »

Я использую Windows, использую VS2022. Я создал библиотеку, используя CUDA, встроенную в графический интерфейс MSVC (не выполняемую непосредственно из командной строки), и в ней я экспортирую функцию устройства. Затем у меня есть еще один файл cu, который я создаю в другом проекте CUDA и связываю с файлом lib библиотеки. Я получаю сообщение об ошибке с неопределенной ссылкой на 'ZN7ustructaSERKS', но если я посмотрю в Dependency Walker на экспортированные функции, они будут больше похожи на ??Kustruct@@QEBA?AV0@H@Z (два примера) скорее всего, это не одна и та же функция, но дело в том, что протоколы искажения разные). Когда я пытаюсь решить эту проблему, мне интересно, выполняет ли Dependency Walker собственное изменение того, что находится в библиотеке dll, чтобы всегда отображать согласованный протокол, или, возможно, nvcc искажает один способ для сообщений об ошибках и другой способ для генерация кода. Конечно, принимая эти имена за чистую монету, неопределенная ссылка имеет смысл, если библиотека искалечена одним способом, а меньший проект — другим, но они оба встроены в графический интерфейс с одинаковыми настройками компилятора и компоновщика, насколько я могу судить. Кстати, если я использую Dependency (современная версия Dependency Walker), он отображает все в неизмененном виде, так что это тот случай, когда приложение отображает это определенным образом, отличным от скомпилированного кода.

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-the-com

Вернуться в «C++»