我正在尝试修改可从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
问问题
213 次
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 回答