Используя весь источник LibTomCrypt, я создал файл библиотеки с Visual Studio 2010, который компилируется без проблем. Однако, при создании консольного приложения простой тест, который связывает с библиотекой TomCrypt, я получаю сообщение об ошибке компоновщика для следующего кода:Visual Studio 2010 Ошибка сборки библиотеки LibTomCrypt или библиотеки
Код проверки:
#include <stdio.h>
#include <tomcrypt.h>
int main()
{
int Cipher;
register_cipher(&aes_desc);
Cipher = find_cipher("aes");
if(Cipher != CRYPT_OK)
return 0;
printf("Cipher name: %s\n", cipher_descriptor[ Cipher ].name);
unregister_cipher(&aes_desc);
return 0;
}
Linker Error :
error LNK1120: 1 unresolved externals
error LNK2001: unresolved external symbol _aes_desc
Интересно, что debug библиотека отлично работает с тестовым кодом. Это выпуск сборник tomcrypt.lib, который, кажется, пропускает некоторые символы.
Теперь я не новичок в создании и использовании файлов библиотек, но мне интересно, существуют ли какие-то определенные флагов компилятора или меры предосторожности, которые я могу сделать для создания библиотеки в режиме деблокирования и правильной ссылки в моей тестовой программе ? Может ли быть, что статическая структура aes_desc, определенная в коде LibTomCrypt, отсутствует в сборке релиза библиотеки посредством некоторой оптимизации компилятора?
Я надеюсь, что кто-то может предложить некоторое понимание для меня и для всех, кто испытывает эту проблему.
Используете ли вы 'gcc' для создания этого кода со статической библиотекой? Потому что если так, то это не сработает. – Max