gpt4 book ai didi

c++ - 您选择的 CPU 不支持 x86-64 指令集

转载 作者:行者123 更新时间:2023-12-02 10:02:19 34 4
gpt4 key购买 nike

我想编译一个包含大量 32 位静态库的程序,由于缺少 makefile,我无法将其重新编译为 64 位,但我应该编译一些库以获得一些静态库以与它们一起使用。

我要编译的库之一有一个 Makefile,如下所示:

CC = c++

BIN_DIR = ../lib

BIN = $(BIN_DIR)/libsql.a

CFLAGS = -w -O3 -ggdb3 -g3 -std=c++14 -pipe -mtune=i386 -fstack-protector -static

CPP=AsyncSQL.cpp Semaphore.cpp Statement.cpp Tellwait.cpp

all: $(BIN)

clean:
@echo Delete .obj files
@rm -f *.o

%.o: %.cpp
@echo -e "\033[0;32m [OK] \033[0m" $<
@$(CXX) $(CFLAGS) -c $^ -o $@

$(BIN): $(CPP:%.cpp=%.o)
@ar cru $(BIN) $^
@ranlib $(BIN)
@rm -rf *.o

结果如下:

 cc1plus: error: CPU you selected does not support x86-64 instruction set

如果我省略选项 -mtune=i386 它会编译成功,但我应该将其余库编译为 64 位二进制文​​件,最后我将无法链接反对那些静态的 32 位的。

如何消除该错误?

如有任何建议,我们将不胜感激。

最佳答案

要在 64 位系统上编译 32 位代码,请对 gcc 使用选项 -m32-mtune=i386 不正确。

关于c++ - 您选择的 CPU 不支持 x86-64 指令集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62009021/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com