0

我正在尝试修改可从http://www.openssl.org/source/获得的 OpenSSL 代码,作为我学校项目的一部分。我对 C 开发非常陌生。我使用 SSL 创建了一个非常简单的客户端-服务器应用程序。我已经编译并安装了 OpenSSL 库。当我运行它时,我在 Ubuntu 上为 SSL 头文件使用 libssl-dev 包。现在我想知道,如果我修改 OpenSSL 代码并想使用修改后的代码测试我的应用程序,我如何指定 gcc 使用修改后的源代码而不是标准代码?目前我正在使用以下命令来编译我的代码:gcc filename.c /usr/local/ssl/lib/libssl.a /usr/local/ssl/lib/libcrypto.a -ldl

4

1 回答 1

0

所以让我们假设你修改的库安装在 下/usr/local/ssl,你可以使用以下命令来编译你的代码:

gcc -I/usr/include/ssl -o foo.o -c foo.c
gcc -I/usr/include/ssl -o bar.o -c bar.c

以及以下链接:

gcc -o my_prog foo.o bar.o -L/usr/local/ssl/lib -lssl -lcrypto -ldl

-L 将使该目录中的库优先于 gcc 配置中隐式定义的库

一个基本的 Makefile 可以是:

CC=gcc
INCLUDE=-I/usr/include/ssl

# other C-preprocessor flags
CPPFLAGS=-DFOO  

# Linker flags

LDFLAGS=

# Libraries
LIBS=-L/usr/local/ssl/lib -lssl -lcrypto -ldl

# Source files 

SOURCES=foo.c bar.c
OBJS=$(SOURCES:.c=.o)

# dummy default target

default: my_prog

# rule to build my_prog:
my_prog: $(OBJS)
       $(CC) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

# clean
clean:
     $(RM) my_prog $(OBJS)

# rule to convert .c to .o

%.o: %.c
     $(CC) $(CPPFLAGS) $(INCLUDES) -o $@ $<
于 2013-05-29T21:50:36.127 回答