Как собрать библиотеку с помощью cgo, используя компилятор Visual Studio? - PullRequest
0 голосов
/ 13 мая 2018

Это вопрос новичка, но я не могу заставить его работать.

Я знаю, что должен использовать CC =, CXX =, и я знаю, что имя компилятора vs cl, хотя яЯ не уверен, что это также верно для компилятора c ++.

Теперь, предполагая, что имя компилятора равно cl для обоих, я получаю ошибку: go build CC = cl cxx = cl --buildmode = c-shared -o../lib/core.dll

Я получаю: не могу загрузить пакет: пакет CC = cl: не могу найти пакет "CC = cl" ни в одном из: ...

Еслис другой стороны, я пытаюсь компилировать без параметров CC / CXX, тогда все работает хорошо.

ТАК, чтобы подвести итог: 1. Какое имя компилятора c и c ++ для vs?2. почему я получаю сообщение об ошибке при попытке выбрать, какой компилятор он будет использовать?

1 Ответ

0 голосов
/ 15 мая 2018

После нескольких дней игры кажется, что единственный работающий способ создать библиотеку, которая бы работала с Visual Studio, это:

  1. создать .dll (используя cgo с go 1.10 +)
  2. используя летучую мышь или метод, упомянутый в ЗДЕСЬ , чтобы создать заглушку lib для подключения dll к visual studio.

    • примечание, возможно также можно использовать функцию loadlibrary (я не пробовал этого, поскольку пытался избежать этого метода, так как он не рекомендуется).
...