LNK2019 не может связать статическую библиотеку в визуальной студии - PullRequest
0 голосов
/ 11 июня 2018

Я прочитал много вопросов, связанных с LNK2019.Но я все еще путаюсь с моей ситуацией.Я прошу прощения, если я пропустил что-то очевидное.

Я пытался использовать библиотеку wolfssl.Это C библиотека.Вот мой код на C ++, который я пытался построить в VS 2017:

extern "C" {
#include <wolfssl/wolfcrypt/sha3.h>


int main() {
    Sha3  sha3;
    wc_InitSha3_256(&sha3, NULL, 0);

    return 0;
}
}

Я получил ошибку LNK2019, неразрешенный внешний символ _wc_InitSha3_256

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

  1. Я перестроил wolfssl из исходного кода.
  2. Я убедился, что библиотека содержит _wc_InitSha3_256
  3. Я добавил полный путь к файлу lib в Свойства-> Линкер-> Ввод-> Дополнительные зависимости (без пробелов в пути)
  4. Я завернул свой код с внешним "C"
  5. Я попытался запустить VS с правами администратора

Все еще с той же ошибкой.Любые идеи?

Обновление: чтобы _wc_InitSha3_256() определить символ WOLFSSL_SHA3 требуется

Моя конфигурация ссылки: My link configuration

1 Ответ

0 голосов
/ 14 сентября 2018

@ Стефан,

Я вижу, вы нашли правильный ответ.Для других, читающих это, решение этого вопроса относительно неразрешенного внешнего символа wc_InitSha3_256 заключается в добавлении флага препроцессора WOLFSSL_SHA3 в ваши настройки.Это можно сделать либо в настройках проекта Visual Studio в PreProcessor, либо вы можете обновить настройки в wolfssl-root/IDE/WIN/user_settings.h, добавив #define WOLFSSL_SHA3 и перестроив проект Visual Studio.Для получения дополнительной документации по работе с решением для Windows wolfSSL посетите веб-сайт wolfSSL на вкладке «docs» и найдите документ с именем «wolfSSL with Visual Studio» в разделе «Техническая документация».Ссылка приведена ниже:

https://www.wolfssl.com/docs/visual-studio/

Если у вас возникнут вопросы относительно продуктов wolfSSL, если вы добавите флаг "wolfssl" к вашему вопросу, у нас есть инженеры, которые регулярно проверяют переполнение стека на наличие новых вопросов.и будем рады опубликовать ответ!Вы также можете в любое время связаться с нами по адресу support [at] wolfssl [dot] com, если ваш вопрос остался без ответа.Просто отправьте нам ссылку на вопрос (и) о переполнении стека, и мы с радостью рассмотрим его!

...