我目前已从源
编写了lighttpd./configure --prefix=/home/lighttpd \
--without-pcre \
--without-zlib \
--without-bzip2
我还尝试了-enable-static --disable-shared选项,但模块仍然从lib目录
加载我想用单个二进制文件编译所有lighttpd模块而不是从lib目录加载,怎么做?
答案 0 :(得分:2)
交叉发布到https://redmine.lighttpd.net/boards/3/topics/6615
Lighttpd可以使用SCons或使用make静态构建。简言之:
使用SCons:
$ scons -j 4 build_static = 1 build_dynamic = 0 prefix = / custom / inst / path install
请:
#edit src / Makefile.am,在'if LIGHTTPD_STATIC'下的部分中,更新lighttpd_SOURCES,每个模块都包含在静态版本中,或者只使用已经存在的整个列表
$ LIGHTTPD_STATIC =是./configure -C --enable-static = yes
$ make
https://redmine.lighttpd.net/boards/3/topics/5912
中的更多详细信息[edit]要使用'make'进行静态构建,请使用lighttpd git master branch或lighttpd 1.4.40 +
答案 1 :(得分:0)
使用标志-DLIGHTTPD_STATIC编译它。如果gcc会警告你语法,强制将gcc解释为C99标准:
make CFLAGS=-DLIGHTTPD_STATIC -std=c99
此外,您必须更改由configure生成的src / Makefile.in以添加要包含的模块。具体来说,添加到am__liblightcomp_la_SOURCE_DIST,am__lighttpd_SOURCES_DIST和common_src:
mod_access.c mod_staticfile.c
并添加对象。 am_objects_1和am__objects_2
mod_access.$(OBJEXT) mod_staticfile.$(OBJEXT)
如果src / plugin-static.h文件不可用,请更改src / plugin.c文件,找到#include“plugin-static.h”行,将其删除并在下面添加:
PLUGIN_INIT(mod_access)
PLUGIN_INIT(mod_staticfile)