admin 管理员组文章数量: 887006
mongoose 搭建 http 服务
今天想在公司环境下练习一下 mongoose 搭建 http 服务的代码,下载了 源码 但是编译出现了问题,记录一下。
1,头文件问题
找不到 json.h 头文件
下载下来已经有 json 源码,所以指定一下就可以了,修改 main.cpp,如:
2,找不到 json 接口问题
Makefile 里添加库路径及库名称:-L../json -ljson
3,没有编译 mongoose.c 问题
如上图中的 mg_ 开头的函数是在 mongoose.c 里,这个得修改Makefile 了,原先的没有对 mongoose.c 进行编译,添加编译.c的命令:
4,没有找到 ssl 接口问题
Makefile 添加 -lssl
5,库版本不匹配问题
libssl.a 和 libssl.so 静态库和动态库是有的,但都是 32 位的
所以只能编译 32 位的程序了,修改Makefile ,添加编译选项 -m32 可以编译 32 位程序。
CC = gcc -m32
CPP = $(CROSS)g++ -std=c++11 -m32
6,json 库找不到的问题
json库明明是有的,结果一看是 64 位的
编译 32 位 json 库也很简单,修改其目录下的 Makefile,添加编译选项 -m32 即可编译出 32 位的库了。
再在 Makefile 里修改链接的库名: -ljson32。最终的 Makefile 为:
#中间文件存放目录,如.o 和 .d 文件
COMPILE_DIR = compile
BIN_DIR = bin# 可编译arm版本
#CROSS = arm-himix200-linux-
CC = gcc -m32
CPP = $(CROSS)g++ -std=c++11 -m32
CFLAGS = -Werror -gLIB =-L../json -ljson32 -lpthread -lssl -lcrypto
# SRCS = $(wildcard *.cpp)
CPP_SRCS = $(shell ls -t | grep "\.cpp$$" | head -1)
CPP_OBJS = $(patsubst %.cpp, $(COMPILE_DIR)/%.o, $(CPP_SRCS))
CPP_DEP = $(patsubst %.cpp, $(COMPILE_DIR)/%.cpp.d, $(CPP_SRCS))C_SRCS = mongoose.c
C_OBJS = $(patsubst %.c, $(COMPILE_DIR)/%.o, $(C_SRCS))
C_DEP = $(patsubst %.c, $(COMPILE_DIR)/%.c.d, $(C_SRCS))OBJS = $(CPP_OBJS) $(C_OBJS)
DEP_ALL = $(CPP_DEP) $(C_DEP)$(shell if [ ! -d $(COMPILE_DIR) ]; then mkdir $(COMPILE_DIR); fi)
$(shell if [ ! -d $(BIN_DIR) ]; then mkdir $(BIN_DIR); fi)TARGET=$(BIN_DIR)/$(BIN)all: $(TARGET)-include $(DEP_ALL)$(TARGET): $(OBJS)$(CPP) $(CFLAGS) $^ -o $@ $(LIB)$(COMPILE_DIR)/%.o: %.cpp $(COMPILE_DIR)/%.cpp.d$(CPP) $(CFLAGS) -c $< -o $@$(COMPILE_DIR)/%.cpp.d: %.cpp$(CPP) $(CFLAGS) -MM -E -c $< -o $@@sed 's/.*\.o/$(subst /,\/,$(dir $@))&/g' $@ > $@.tmp@mv $@.tmp $@$(COMPILE_DIR)/%.o: %.c $(COMPILE_DIR)/%.c.d$(CC) $(CFLAGS) -c $< -o $@$(COMPILE_DIR)/%.c.d: %.c$(CC) $(CFLAGS) -MM -E -c $< -o $@@sed 's/.*\.o/$(subst /,\/,$(dir $@))&/g' $@ > $@.tmp@mv $@.tmp $@.PHONY: clean
clean:rm -rf $(COMPILE_DIR) $(BIN_DIR)
Makefile 主要是将 c 和 cpp 文件分开编译了。
本文标签: mongoose 搭建 http 服务
版权声明:本文标题:mongoose 搭建 http 服务 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732354236h1533970.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论