python笔记:2.1.5b特性_只读属性

本文详细介绍了Python中类的定义与使用,包括属性、方法、构造函数、类方法及属性的访问控制。通过实例展示了继承的概念,子类如何调用父类的方法,以及属性的封装与访问。同时,探讨了只读属性的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding: utf-8 -*-
"""
Created on Tue May 14 14:33:35 2019

@author: User
"""

class Human(object):
    
    domain = 'eukarya'
    def __init__(self, kingdom='Animalia',phylum='Chordata',
                order='Primates',family='Human Being'):
        self.kingdom = kingdom
        self.phylum=phylum
        self.__order = order
        self.family = family
    
    def typewrite(self):
        print('This is %s typing words!' %self.family)
    def add(self, n1, n2):
        n = n1 + n2
        print(str(n1) + '+' + str(n2) + '+' + str(n))
        print('You see! %s can calculate!' %self.family)
        
    @classmethod
    def showclassmethodinfo(cls):
        print(cls.__name__) #__name__属性,其值为类名
        print(dir(cls))    #使用dir列示本类的所有方法

    
class Female(Human):
    def __init__(self,gender='female', age = 15, bloodtype = ''):
        super(Female,self).__init__() #
        self.gender = gender
        self._age = age
        self._bloodtype = bloodtype
        
    @property
    def age(self):
        return self._age
    
    @age.setter
    def age(self, age_value):
        if not isinstance(age_value, int):
            raise ValueError('年龄必须为整数型')
        if age_value < 0:
            raise ValueError('年龄必须大于等于0')
        if age_value > 150:
            raise ValueError('年龄必须小于等于150')
        
    @property
    def bloodtype(self):
        return self._bloodtype
      
MissLi = Female()
MissLi.age = 15
print(MissLi.age)

MissLiu = Female(bloodtype = 'B')
print(MissLiu.bloodtype)

MissLiu.bloodtype = 'AB'



运行:

15
B
Traceback (most recent call last):

  File "<ipython-input-111-7ef3c6eba06e>", line 1, in <module>
    runfile('D:/0python/2.1.5b特性_只读属性.py', wdir='D:/0python')

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 786, in runfile
    execfile(filename, namespace)

  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "D:/0python/2.1.5b特性_只读属性.py", line 62, in <module>
    MissLiu.bloodtype = 'AB'

AttributeError: can't set attribute

user@debian:~/ModSecurity$ git fetch --tags origin remote: Enumerating objects: 35757, done. remote: Counting objects: 100% (35757/35757), done. remote: Compressing objects: 100% (8282/8282), done. remote: Total 35008 (delta 26724), reused 34519 (delta 26239), pack-reused 0 (from 0) 接收对象中: 100% (35008/35008), 48.78 MiB | 2.72 MiB/s, 完成. 处理 delta 中: 100% (26724/26724), 完成 322 个本地对象. 来自 https://github.com/SpiderLabs/ModSecurity * [新标签] v2.1.0 -> v2.1.0 * [新标签] v2.1.0-rc7 -> v2.1.0-rc7 * [新标签] v2.1.1 -> v2.1.1 * [新标签] v2.1.1-dev2 -> v2.1.1-dev2 * [新标签] v2.1.1-dev3 -> v2.1.1-dev3 * [新标签] v2.1.1-dev4 -> v2.1.1-dev4 * [新标签] v2.1.1-rc1 -> v2.1.1-rc1 * [新标签] v2.1.1-rc2 -> v2.1.1-rc2 * [新标签] v2.1.2 -> v2.1.2 * [新标签] v2.1.2-rc1 -> v2.1.2-rc1 * [新标签] v2.1.2-rc2 -> v2.1.2-rc2 * [新标签] v2.1.2-rc3 -> v2.1.2-rc3 * [新标签] v2.1.3 -> v2.1.3 * [新标签] v2.1.3-rc1 -> v2.1.3-rc1 * [新标签] v2.1.3-rc2 -> v2.1.3-rc2 * [新标签] v2.1.4 -> v2.1.4 * [新标签] v2.1.4-rc1 -> v2.1.4-rc1 * [新标签] v2.1.4-rc2 -> v2.1.4-rc2 * [新标签] v2.1.4-rc3 -> v2.1.4-rc3 * [新标签] v2.1.4-rc4 -> v2.1.4-rc4 * [新标签] v2.1.5 -> v2.1.5 * [新标签] v2.1.5-rc1 -> v2.1.5-rc1 * [新标签] v2.1.6 -> v2.1.6 * [新标签] v2.1.6-rc1 -> v2.1.6-rc1 * [新标签] v2.1.7 -> v2.1.7 * [新标签] v2.2.0-dev1 -> v2.2.0-dev1 * [新标签] v2.5.0 -> v2.5.0 * [新标签] v2.5.0-dev2 -> v2.5.0-dev2 * [新标签] v2.5.0-rc1 -> v2.5.0-rc1 * [新标签] v2.5.0-rc2 -> v2.5.0-rc2 * [新标签] v2.5.0-rc3 -> v2.5.0-rc3 * [新标签] v2.5.0-rc3-pre2 -> v2.5.0-rc3-pre2 * [新标签] v2.5.0-rc4 -> v2.5.0-rc4 * [新标签] v2.5.1 -> v2.5.1 * [新标签] v2.5.1-rc1 -> v2.5.1-rc1 * [新标签] v2.5.10 -> v2.5.10 * [新标签] v2.5.10-dev1 -> v2.5.10-dev1 * [新标签] v2.5.10-dev2 -> v2.5.10-dev2 * [新标签] v2.5.10-dev3 -> v2.5.10-dev3 * [新标签] v2.5.11 -> v2.5.11 * [新标签] v2.5.12 -> v2.5.12 * [新标签] v2.5.13 -> v2.5.13 * [新标签] v2.5.2 -> v2.5.2 * [新标签] v2.5.3 -> v2.5.3 * [新标签] v2.5.4 -> v2.5.4 * [新标签] v2.5.5 -> v2.5.5 * [新标签] v2.5.6 -> v2.5.6 * [新标签] v2.5.7 -> v2.5.7 * [新标签] v2.5.7-rc1 -> v2.5.7-rc1 * [新标签] v2.5.8 -> v2.5.8 * [新标签] v2.5.9 -> v2.5.9 * [新标签] v2.6.0 -> v2.6.0 * [新标签] v2.6.0-rc1 -> v2.6.0-rc1 * [新标签] v2.6.0-rc2 -> v2.6.0-rc2 * [新标签] v2.6.1 -> v2.6.1 * [新标签] v2.6.2 -> v2.6.2 * [新标签] v2.6.2-rc1 -> v2.6.2-rc1 * [新标签] v2.6.3 -> v2.6.3 * [新标签] v2.6.3-rc1 -> v2.6.3-rc1 * [新标签] v2.6.4 -> v2.6.4 * [新标签] v2.6.4-rc1 -> v2.6.4-rc1 * [新标签] v2.6.5 -> v2.6.5 * [新标签] v2.6.6 -> v2.6.6 * [新标签] v2.6.7 -> v2.6.7 * [新标签] v2.6.8 -> v2.6.8 * [新标签] v2.7.0 -> v2.7.0 * [新标签] v2.7.0-rc1 -> v2.7.0-rc1 * [新标签] v2.7.0-rc3 -> v2.7.0-rc3 * [新标签] v2.7.1 -> v2.7.1 * [新标签] v2.7.2 -> v2.7.2 * [新标签] v2.7.3 -> v2.7.3 * [新标签] v2.7.4 -> v2.7.4 * [新标签] v2.7.5 -> v2.7.5 * [新标签] v2.7.6 -> v2.7.6 * [新标签] v2.7.7 -> v2.7.7 * [新标签] v2.8.0 -> v2.8.0 * [新标签] v2.8.0-rc1 -> v2.8.0-rc1 * [新标签] v2.9.0 -> v2.9.0 * [新标签] v2.9.0-rc1 -> v2.9.0-rc1 * [新标签] v2.9.0-rc2 -> v2.9.0-rc2 * [新标签] v2.9.1 -> v2.9.1 * [新标签] v2.9.1-rc1 -> v2.9.1-rc1 * [新标签] v2.9.10 -> v2.9.10 * [新标签] v2.9.2 -> v2.9.2 * [新标签] v2.9.3 -> v2.9.3 * [新标签] v2.9.4 -> v2.9.4 * [新标签] v2.9.5 -> v2.9.5 * [新标签] v2.9.6 -> v2.9.6 * [新标签] v2.9.7 -> v2.9.7 * [新标签] v2.9.8 -> v2.9.8 * [新标签] v2.9.9 -> v2.9.9 * [新标签] v3.0.0 -> v3.0.0 * [新标签] v3.0.0-rc1 -> v3.0.0-rc1 * [新标签] v3.0.1 -> v3.0.1 * [新标签] v3.0.10 -> v3.0.10 * [新标签] v3.0.11 -> v3.0.11 * [新标签] v3.0.12 -> v3.0.12 * [新标签] v3.0.13 -> v3.0.13 * [新标签] v3.0.14 -> v3.0.14 * [新标签] v3.0.2 -> v3.0.2 * [新标签] v3.0.3 -> v3.0.3 * [新标签] v3.0.4 -> v3.0.4 * [新标签] v3.0.5 -> v3.0.5 * [新标签] v3.0.6 -> v3.0.6 * [新标签] v3.0.7 -> v3.0.7 * [新标签] v3.0.8 -> v3.0.8 * [新标签] v3.0.9 -> v3.0.9 user@debian:~/ModSecurity$ git checkout v3.0.8 注意:正在切换到 'v3.0.8'。 您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以在切换 回一个分支时,丢弃在此状态下所做的提交而不对分支造成影响。 如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在 switch 命令 中添加参数 -c 来实现(现在或稍后)。例如: git switch -c <新分支名> 或者撤销此操作: git switch - 通过将配置变量 advice.detachedHead 设置为 false 来关闭此建议 HEAD 目前位于 996c7e1e Change release version to v3.0.8 user@debian:~/ModSecurity$ ./build.sh libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build'. libtoolize: copying file 'build/libtool.m4' libtoolize: copying file 'build/ltoptions.m4' libtoolize: copying file 'build/ltsugar.m4' libtoolize: copying file 'build/ltversion.m4' libtoolize: copying file 'build/lt~obsolete.m4' configure.ac:84: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:84: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/yajl.m4:4: PROG_YAJL is expanded from... configure.ac:84: the top level configure.ac:98: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:98: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/lmdb.m4:4: PROG_LMDB is expanded from... configure.ac:98: the top level configure.ac:102: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:102: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/ssdeep.m4:5: CHECK_SSDEEP is expanded from... configure.ac:102: the top level configure.ac:106: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:106: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/lua.m4:5: CHECK_LUA is expanded from... configure.ac:106: the top level configure.ac:106: warning: The macro `AC_TRY_COMPILE' is obsolete. configure.ac:106: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... build/lua.m4:121: CHECK_FOR_LUA_AT is expanded from... build/lua.m4:5: CHECK_LUA is expanded from... configure.ac:106: the top level configure.ac:113: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:113: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/curl.m4:15: CHECK_CURL is expanded from... configure.ac:113: the top level configure.ac:123: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:123: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/libxml.m4:14: CHECK_LIBXML2 is expanded from... configure.ac:123: the top level configure.ac:129: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:129: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/pcre.m4:15: CHECK_PCRE is expanded from... configure.ac:129: the top level configure.ac:129: warning: The macro `AC_TRY_LINK' is obsolete. configure.ac:129: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... build/pcre.m4:15: CHECK_PCRE is expanded from... configure.ac:129: the top level configure.ac:135: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:135: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/pcre2.m4:4: PROG_PCRE2 is expanded from... configure.ac:135: the top level configure.ac:140: warning: The macro `AC_HEADER_STDC' is obsolete. configure.ac:140: You should run autoupdate. ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... configure.ac:140: the top level configure.ac:231: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:231: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:231: the top level configure.ac:249: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:249: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:249: the top level configure.ac:262: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:262: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:262: the top level configure.ac:275: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:275: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:275: the top level configure.ac:288: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:288: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:288: the top level configure.ac:307: warning: AC_PROG_LEX without either yywrap or noyywrap is obsolete ./lib/autoconf/programs.m4:716: _AC_PROG_LEX is expanded from... ./lib/autoconf/programs.m4:709: AC_PROG_LEX is expanded from... configure.ac:307: the top level configure.ac:50: installing './compile' configure.ac:45: installing './missing' examples/multiprocess_c/Makefile.am: installing './depcomp' configure.ac:84: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:84: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/yajl.m4:4: PROG_YAJL is expanded from... configure.ac:84: the top level configure.ac:98: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:98: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/lmdb.m4:4: PROG_LMDB is expanded from... configure.ac:98: the top level configure.ac:102: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:102: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/ssdeep.m4:5: CHECK_SSDEEP is expanded from... configure.ac:102: the top level configure.ac:106: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:106: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/lua.m4:5: CHECK_LUA is expanded from... configure.ac:106: the top level configure.ac:106: warning: The macro `AC_TRY_COMPILE' is obsolete. configure.ac:106: You should run autoupdate. ./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from... build/lua.m4:121: CHECK_FOR_LUA_AT is expanded from... build/lua.m4:5: CHECK_LUA is expanded from... configure.ac:106: the top level configure.ac:113: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:113: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/curl.m4:15: CHECK_CURL is expanded from... configure.ac:113: the top level configure.ac:123: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:123: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/libxml.m4:14: CHECK_LIBXML2 is expanded from... configure.ac:123: the top level configure.ac:129: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:129: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1553: AC_ARG_WITH is expanded from... build/pcre.m4:15: CHECK_PCRE is expanded from... configure.ac:129: the top level configure.ac:129: warning: The macro `AC_TRY_LINK' is obsolete. configure.ac:129: You should run autoupdate. ./lib/autoconf/general.m4:2920: AC_TRY_LINK is expanded from... build/pcre.m4:15: CHECK_PCRE is expanded from... configure.ac:129: the top level configure.ac:135: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:135: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... build/pcre2.m4:4: PROG_PCRE2 is expanded from... configure.ac:135: the top level configure.ac:140: warning: The macro `AC_HEADER_STDC' is obsolete. configure.ac:140: You should run autoupdate. ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... configure.ac:140: the top level configure.ac:231: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:231: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:231: the top level configure.ac:249: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:249: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:249: the top level configure.ac:262: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:262: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:262: the top level configure.ac:275: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:275: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:275: the top level configure.ac:288: warning: The macro `AC_HELP_STRING' is obsolete. configure.ac:288: You should run autoupdate. ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from... ./lib/autoconf/general.m4:1534: AC_ARG_ENABLE is expanded from... configure.ac:288: the top level configure.ac:307: warning: AC_PROG_LEX without either yywrap or noyywrap is obsolete ./lib/autoconf/programs.m4:716: _AC_PROG_LEX is expanded from... ./lib/autoconf/programs.m4:709: AC_PROG_LEX is expanded from... configure.ac:307: the top level user@debian:~/ModSecurity$
最新发布
06-29
<think>我们正在处理用户关于ModSecurity构建脚本中出现的过时宏警告问题。具体来说,用户遇到了`AC_HELP_STRING`宏被标记为过时的警告。在autotools中,`AC_HELP_STRING`已经被`AS_HELP_STRING`取代。因此,我们需要更新项目中的`configure.ac`(或`configure.in`)文件,将所有`AC_HELP_STRING`替换为`AS_HELP_STRING`。 此外,用户可能使用的是较旧版本的ModSecurity,因为新版本已经修复了这个问题。如果用户使用的是旧版本,我们可以手动修改。 步骤: 1.定位`configure.ac`(或`configure.in`)文件。2.将文件中所有的`AC_HELP_STRING`替换为`AS_HELP_STRING`。3.重新运行构建脚本。注意:`AS_HELP_STRING`宏在autoconf2.50及更高版本中可用,所以需要确保系统中安装的autoconf版本至少是2.50。如果构建脚本中还有其他过时的宏,我们可能需要根据具体警告进行相应的替换。另外,用户提供的构建脚本(build.sh)本身也可以优化,比如使用`autoreconf`来简化步骤。下面我们给出详细的解决方案。</think>### 解决 ModSecurity 构建中 `AC_HELP_STRING` 过时警告的完整指南 #### 问题原因分析 在构建 ModSecurity 时出现的 `AC_HELP_STRING` 过时警告是由于 Autoconf 版本升级导致的: - `AC_HELP_STRING` 宏在 Autoconf 2.50+ 中被标记为过时[^1] - 新版本 Autoconf 要求使用 `AS_HELP_STRING` 替代[^2] - 根本原因是项目中的 `configure.ac` 文件使用了旧版宏定义 #### 解决方案(逐步操作) 1. **修改 configure.ac 文件** 找到项目中的 `configure.ac` 文件,将所有 `AC_HELP_STRING` 替换为 `AS_HELP_STRING`: ```bash sed -i 's/AC_HELP_STRING/AS_HELP_STRING/g' configure.ac ``` 2. **更新 aclocal.m4 宏定义** 在 `configure.ac` 开头添加宏重定义: ```m4 m4_ifndef([AS_HELP_STRING], [m4_define([AS_HELP_STRING], [AC_HELP_STRING([$1],[$2])])]) ``` 3. **检查 Autoconf 版本兼容性** 验证系统 Autoconf 版本: ```bash autoconf --version | head -1 ``` - 若版本 < 2.50:需升级 Autoconf ```bash # Ubuntu/Debian sudo apt install autoconf # RHEL/CentOS sudo yum install autoconf ``` 4. **优化构建脚本** 修改 `build.sh` 使用现代化构建流程: ```bash #!/bin/sh rm -rf autom4te.cache autoreconf -ivf # 替代所有手动步骤 ``` #### 验证修复 ```bash # 重新生成配置系统 ./build.sh # 检查警告是否消失 ./configure | grep "HELP_STRING" ``` #### 技术原理说明 - `AS_HELP_STRING` 提供更好的格式化和国际化支持[^2] - 宏替换通过 M4 处理器在生成 `configure` 脚本时完成[^1] - `autoreconf -ivf` 自动处理所有依赖关系: ```mermaid graph LR A[configure.ac] --> B[autoreconf] B --> C[aclocal] B --> D[autoheader] B --> E[automake] B --> F[autoconf] F --> G[无警告的configure] ``` #### 备选方案 如果上述修改无效,可直接应用社区补丁: ```bash # 适用于 ModSecurity v3.x wget https://github.com/SpiderLabs/ModSecurity/commit/xxxxxxx.patch patch -p1 < xxxxxxx.patch ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值