这个问题通常是由于使用了不兼容的编译器版本引起的。解决方法是在编译选项中添加“-D_DISABLE_EXTENDED_ALIGNED_STORAGE”标志。
示例:
CMakeLists.txt 添加 -D_DISABLE_EXTENDED_ALIGNED_STORAGE 标志
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
add_executable(MyProject main.cpp)
target_compile_options(MyProject PRIVATE -D_DISABLE_EXTENDED_ALIGNED_STORAGE)
Makefile 添加 -D_DISABLE_EXTENDED_ALIGNED_STORAGE 标志
CC=gcc
CXX=g++
CFLAGS=
CXXFLAGS=-std=c++11 -Wall -Wextra -pedantic
LDFLAGS=
SRCS=main.cpp
OBJS=$(subst .cpp,.o,$(SRCS))
EXEC=MyProject
all: $(EXEC)
$(EXEC): $(OBJS)
$(CXX) $(LDFLAGS) -o $@ $^
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
.PHONY: clean
clean:
rm -f $(OBJS) $(EXEC)
target_compile_options(MyProject PRIVATE -D_DISABLE_EXTENDED_ALIGNED_STORAGE)
注意:如果您在使用Visual Studio编译器,请确保使用支持C++11标准或更高版本的版本。