/ usr / bin / x86_64-linux-gnu-ld: не можете найти? - PullRequest
0 голосов
/ 19 сентября 2018

Я изучаю язык C в Ubuntu 18.04 (gcc 7.3)

При вводе команды 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.

Я вообще не знаю метод решения.

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 19 сентября 2018

Параметр -l предназначен для связывания динамических библиотек (например, libkeccak.so).Статические библиотеки уже связаны с исполняемым файлом, если они находятся в одном из «стандартных» каталогов, поэтому нет необходимости указывать опцию -lkeccak.

Если вы хотите явно указать GCC для связывания статическогобиблиотека,

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