Искажает ли 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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