当我运行时,nginx -V
我会在输出中得到类似的东西。
--with-ld-opt='-lrt -ljemalloc -Wl,-z,relro' --with-cc-opt='-m64 -mtune=native -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wno-sign-compare -Wno-string-plus-int -Wno-deprecated-declarations -Wno-unused-parameter -Wno-unused-const-variable -Wno-conditional-uninitialized -Wno-mismatched-tags -Wno-c++11-extensions -Wno-sometimes-uninitialized -Wno-parentheses-equality -Wno-tautological-compare -Wno-self-assign -Wno-deprecated-register -Wno-deprecated -Wno-invalid-source-encoding -Wno-pointer-sign -Wno-parentheses -Wno-enum-conversion'
这是什么以及如何知道从源代码编译 nginx 时需要去这里的哪些值?
开箱即用您可能不需要自己提供任何标志,配置脚本应该自动检测一些合理的默认值。
但是,为了优化速度和/或安全性,您可能应该提供一些编译器标志。Red Hat 发表了一篇关于他们认为不错的标志集合的文章。以 开头的标志
-Wl
由链接器使用,因此您应该使用--with-ld-opt
. 例如-Wl,-pie
会变成--with-ld-opt="-pie"
.另一种合理的方法是复制您的发行版提供的软件包使用的选项。维护者可能知道他在做什么,并且您至少知道它适用于您的用例。
此 Nginx 选项显示配置选项(需要设置编译器和链接器):
正如本文档页面所说-> http://nginx.org/en/docs/configure.html:
因此,第一个是您要添加到链接器(ld)的内容,第二个是用于编译器(cc、gcc 等)的。有关这些选项的更多信息,请参阅 gcc 手册页:https ://linux.die.net/man/1/gcc
当您输入以下命令时:
nginx -V -h
where:
-V: : show version and configure options then exit
因此您可以使用各种参数相应地配置您的构建。可以使用 configure 命令配置构建。
根据您的需要进行配置,无论您遇到什么困难,只需添加
-h
以获取有关配置中特定参数的信息。