Я пытаюсь кода некоторых с кода OpenSSL ...C: Компиляция проекта OpenSSL
Скажем, у меня есть файл hello.c
, использование которого OpenSSL.
hello.c
...
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
...
Вот мой makefile
:
Makefile
CC=gcc
CFLAGS=-W -Wall -ansi -pedantic
LDFLAGS=
EXEC=hello
all: $(EXEC)
hello: hello.o main.o
$(CC) -o [email protected] $^ $(LDFLAGS)
%.o: %.c
$(CC) -o [email protected] -c $< $(CFLAGS)
run:
./$(EXEC)
.PHONY: clean mrproper
clean:
rm -rf *.o
mrproper: clean
rm -rf $(EXEC)`
Когда я бегу Makefile я получаю эту ошибку:
hello.c:4:26: fatal error: openssl/rand.h no such file or directory
#include <openssl/rand.h>
Что нужно добавить в make-файл, чтобы компиляция работала? Я не смог найти ни одного ясного примера.
первую очередь, найти путь из заголовков библиотеки OpenSSL и передать его в gcc с параметром '-I'. Затем продолжайте и сделайте то же самое для файлов lib (или переключитесь на систему сборки, такую как cmake, которая обрабатывает этот неудобный материал для вас: http://www.cmake.org/cmake/help/v3.0/module/FindOpenSSL .html) – stefan
Вам нужно найти путь, который содержит путь 'openssl', и добавить' -IThePathYouFound' в 'CFLAGS' – ForceBru
Те, которые должны быть установлены в стандартных местах и не должны иметь специальный флаг' -I'. У вас есть файлы заголовков openssl? В большинстве дистрибутивов они не входят в обычный пакет, и вам нужен соответствующий пакет '-dev' или' -devel'. –