сборка libgit2 с использованием libssh — редактирование соглашения о вызовах?

#git #ssh #libgit2 #libssh2

#git #ssh #libgit2 #libssh2

Вопрос:

Я пытаюсь собрать libgit2 для включения ssh, и я следую приведенному здесь руководству, добавляя поддержку ssh в подключаемый модуль Visual Studio 2015 Git

В разделе комментариев Том Соллас упоминает о выполнении следующего после запуска cmake в libssh

  • откройте результирующую сборку libssh2.sln в VS2015, отредактируйте проект libssh2 и установите для соглашения о вызовах __stdcall (/Gz), установите для типа сборки значение «Release» и перестройте все (примечание: должно быть Release!)

Я понятия не имею, что подразумевается под «редактированием проекта и настройкой соглашения о вызовах». Я полагаю, что это вещь C ? который я никогда не использовал. Я разработчик c #.

Ответ №1:

Да, это C / C . Соглашения о вызовах определяют, как функции извлекают аргументы из стека и возвращают результаты; Вызывающий должен предоставлять аргументы таким образом, чтобы вызываемая функция ожидала их получения, иначе произойдет сбой программы.

Откройте страницу свойств проекта. В разделе компилятора вы найдете соглашения о вызовах. По умолчанию они будут cdecl . Измените их на stdcall , затем создайте проект.