我在ubuntu 18.04(gcc 7.3)学习C语言
当输入make all
命令时,会发生以下错误:
/usr/bin/x86_64-linux-gnu-ld:找不到-lkeccakMakefile
如下。
CC=gcc
CFLAGS=-03 -fomit-frame-pointer -msse2avx -mavx2 -march=native -std=c99
all:
$(CC) $(CFLAGS) -c Lizard.c main.c randombytes.c sha512.c
$(CC) $(CFLAGS) -o Lizard Lizard.o main.o randobytes.o sha512.o -lkeccak
run: all
./Lizard
new:
make clean
make all
./Lizard
当前
libkeccak.a
文件与Makefile
位于同一目录中,并且它也在
/usr/include
目录中。我根本不知道解的方法。
求你了,帮帮我。
最佳答案
-l
选项用于链接动态库(如libkeccak.so
)。如果静态库位于某个“标准”目录中,则它们已经链接到可执行文件中,因此无需提供选项-lkeccak
。
如果要显式地告诉GCC链接静态库,
gcc -l:/path/to/libkeccak.a