AC NPCBots预补丁仓库编译错误:ISO C++禁止枚举前向引用
解决AzerothCore NPC-Bot编译时的枚举前向引用错误
错误原因
编译报错「ISO C++ forbids forward references to 'enum' types」是因为旧版C标准(C03及更早)不支持枚举类型的前向声明,而C11及以上标准放开了该限制,只需指定编译器使用C11标准即可解决。
解决方案
方法1:修改CMake全局配置(永久生效)
- 打开仓库根目录下的
CMakeLists.txt文件 - 在文件开头的项目声明(
project(AzerothCore...))后添加以下代码:set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) - 保存文件后,运行
./acore.sh选择「clean, configure and compile」选项重新编译
方法2:通过acore.sh交互式配置
- 运行
./acore.sh,选择「Configure」进入配置界面 - 查找并设置
CMAKE_CXX_STANDARD参数值为11 - 保存配置后,返回主菜单选择「Compile」完成编译
方法3:临时环境变量(单次生效)
- 在终端执行以下命令设置编译参数:
export CXXFLAGS="-std=c++11" - 接着运行一键编译命令:
./acore.sh clean configure compile
内容的提问来源于stack exchange,提问作者Stephen Rose
相关产品推荐
相关产品推荐

