我在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目录中。
我根本不知道解的方法。
求你了,帮帮我。

最佳答案

-l选项用于链接动态库(如libkeccak.so)。如果静态库位于某个“标准”目录中,则它们已经链接到可执行文件中,因此无需提供选项-lkeccak
如果要显式地告诉GCC链接静态库,

gcc -l:/path/to/libkeccak.a

07-26 04:36