我在ubuntu 18.04(gcc 7.3)中学习C语言
输入make all
命令时,会发生此错误:
/ usr / bin / x86_64-linux-gnu-ld:找不到-lkeccak
Makefile
如下。
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
目录中。
我根本不知道解决方法。
请帮帮我。
答案 0 :(得分:0)
-l
选项用于链接动态库(如libkeccak.so
)。如果静态库位于“标准”目录之一中,则它们已经链接到可执行文件,因此无需提供选项-lkeccak
。
如果您想明确告诉GCC链接静态库,
gcc -l:/path/to/libkeccak.a