Crypto ++ не может собрать приложение Qt

В настоящее время я пытаюсь запустить Crypto ++ в моем приложении Qt. Но это не работает. Надеюсь, кто-то из вас знает, что не так, потому что я не понял, и я занимаюсь этим уже 3 дня.

Чтобы сконцентрировать проблему, я создал тестовое приложение. Удерживая этот код: http://pastebin.com/1XMARtds взято из http://programmingknowledgeblog.blogspot.de/2013/04/compiling-and-integrating-crypto-into.html

Мой .pro выглядит так:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += main.cpp

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../Savor_V100/libraries/ -lcryptlib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../Savor_V100/libraries/ -lcryptlibd
else:unix: LIBS += -L$$PWD/../Savor_V100/libraries/ -lcryptlib

INCLUDEPATH += $$PWD/../Savor_V100/includes/cryptopp562
DEPENDPATH += $$PWD/../Savor_V100/includes/cryptopp562

Я скомпилировал библиотеку с MS Visual Studio 2012.
Когда я использую эти настройки: http://i.imgur.com/Nd9TEIA.png

Я получаю один файл .lib 50 МБ.

Когда я пытаюсь собрать свое приложение в Qt Creator (5.0.2), я получаю следующее:
http://i.imgur.com/RbCGQDU.png

Много:

cryptlib.lib(cryptlib.obj):-1: error: LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MD_DynamicRelease' in main.obj

Там также написано: Файл не найден: cryptlib.lib (cryptlib.obj)

Если я помещаю файлы .obj в ту же папку, что и файл .lib, я избавляюсь от ошибок «файл не найден». Но больше ничего не меняется.

Может кто-нибудь объяснить, что я делаю не так? Информация LNK2038 на сайте мне не помогает 🙁

3

Решение

Шаг 7 инструкций, на которые вы ссылались Вот кажется странным. Обычно вы бы выбрали /MD а также /MDd для Release и Debug соответственно, или же вы бы выбрали /MT а также /MTd,

Суть в том, что ваша криптографическая сборка Release связана с динамической версией библиотеки C Runtime (через /MD), но ваш тестовый файл установлен на ссылку на статическую версию (через /MT).

Вы должны ссылаться только на одну версию CRT — то есть перекомпилировать crypto ++ в режиме Release с /MT установить вместо /MDили измените свой тестовый exe для использования /MD,

Для получения дополнительной информации об этих флагах см. MSDN документы.

2

Другие решения

Кто хочет запустить crypto ++ в linux (я это сделал в ubuntu), после загрузки библиотеки через apt-get install, должен добавить в pro file это:
LIBS + = -L / usr / lib / crypto ++ -lcrypto ++
Удачи!

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector