Я установил polarssl:
попытался скомпилировать очень простой файл с именем test.c
:
#include <stdio.h>
#include "polarssl/md5.h"
int main(int argc, char * argv[])
{
int i;
for (i=1;i<1;i++)
{
char res[16];
if (md5_file("file.txt",res) == 0)
{
int count;
for (count=0;count<16;count++)
printf("%02x",res[count]);
printf("n");
}
}
return 0;
}
Скомпилировал это так:
gcc -lpolarssl test.c -I / usr / local / include / polarssl /
но это показывает мне:
/tmp/cczptlsk.o: In function `main':
test.c:(.text+0x36): undefined reference to `md5_file'
collect2: ld returned 1 exit status
в чем проблема, как это исправить? Я на 100% знаю, что файлы polarssl находятся в /usr/local/include/polarssl/
Компилятор попытается завершить компоновку в порядке представления объектов или файлов. В этом случае, так как вы положили -lpolarssl
Во-первых, в этой библиотеке не было необходимости в неразрешенных символах, поэтому ничего не было связано.
Ввод -lpolarssl
last позволяет компилятору разрешать неразрешенные символы из вашего исходного файла из этой библиотеки.
Включает нормально.
Но связывать это неправильно. Попробуй поставить -lpolarssl
последний в команде компоновщика.
Затем добавьте -L
если libpolarssl.a не найден компоновщиком, чтобы указать его в нужном месте.