Примеры cuBLAS, внешний символ не разрешен, VS2015 [дубликат]

Отличные ответы выше. Я хочу только добавить, что внутри области вашей функции вы можете присвоить значение этой переменной переменной let self = this;, а затем внутри обратного вызова просто обратиться к данным типа self.data.

Ваш код :

function MyConstructor(data, transport) {
    this.data = data;

    let self = this;   //ADD THIS LINE

    transport.on('data', function () {
        alert(self.data);   //USE IT LIKE THIS
    });
}

// Mock transport object
var transport = {
    on: function(event, callback) {
        setTimeout(callback, 1000);
    }
};

// called as
var obj = new MyConstructor('foo', transport);
3
задан Robert Crovella 2 December 2015 в 02:36
поделиться

2 ответа

Общие инструкции по связыванию библиотек не относятся к CUDA. Поэтому вы можете узнать больше о , используя MS VS . В любом случае, шаги таковы:

  1. Убедитесь, что вы открыли проект, над которым хотите работать.
  2. Выберите «Просмотр ... Страницы свойств» (из меню ) Появится новое диалоговое окно.
  3. В левой части этого диалогового окна выберите Linker, чтобы открыть его подменю
  4. . В линкере выберите Input
  5. Теперь, на панели справа, обратите внимание на первый элемент, который является «Дополнительные зависимости». Я полагаю, что cudart.lib должен присутствовать там.
  6. Щелкните справа от cudart.lib Теперь вы можете вводить новые библиотеки для добавления. Введите пробел (чтобы отделить cudart.lib) и введите cusparse.lib
  7. Теперь нажмите «Применить» в правом нижнем углу диалогового окна.

должен быть всем, что необходимо, если ваш файл проекта / решения уже настроен с использованием шаблона cuda. Если cudart.lib отсутствует, или ваши файлы проекта / решения еще не понимают cuda, это отдельная проблема. В этом случае я бы рекомендовал начать, путем клонирования проекта из образцов и построения вашего проекта, используя это как отправную точку. Затем он подберет все нужные каталоги для поиска, а также правила сборки cuda. Поскольку все основные библиотеки cuda (cudart, cublas, cufft, cusparse и т. Д.) Находятся в одном месте, один и тот же путь поиска должен выбрать любой из них по мере необходимости.

Если вы хотите связать например, в другой библиотеке, например cublas.lib, вы можете следовать аналогичной последовательности, заменив cusparse.lib выше на cublas.lib

. Обратите внимание, что с более новыми версиями CUDA (например, CUDA 7.5) это будет необходимо только для создания 64-битного проекта (следуйте приведенным выше инструкциям при изменении свойств проекта x64). CUDA 7.5 и выше отказываются от поддержки 32-битных проектов.

6
ответ дан Community 21 August 2018 в 18:08
поделиться

Я исправил его следующими шагами:

  1. Добавить путь cuda: Go: «Свойства конфигурации-> Linker-> General-> Additional Libary Directories" и добавить $ (CudaToolkitLibDir) в список .
  2. Добавить библиотеку cuda realtime: Go: «Свойства решения -> Linker-> Input-> Additional Dependencies» и добавьте cudart.lib в список.
  3. Добавить библиотеку cublas: Go : «Свойства решения -> Linker-> Input-> Additional Dependencies» и добавьте cublas.lib в список.
  4. Смена платформы на x64: Идите: «Свойства конфигурации -> Платформа» и установите ее на x64 .
  5. Запустите cmd.exe как администратор. Введите и выполните следующие две строки команды:

netsh каталог сброса winsock

netsh int ip reset reset.log hit

Он может скажем, что требуется перезагрузка, но на самом деле это необязательно. Попробуйте снова отладить ваше приложение, проблема должна быть решена.

0
ответ дан Mohammad K Fallah 21 August 2018 в 18:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: