• 1000 библиотеки для использования вместе с ними.
Одна из библиотек, которую я хочу скомпилировать, имеет 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-битные двоичные файлы, и в конце я не смогу связать эти stati c 32-битные one.
Как я могу устранить эту ошибку?
Любые предложения будут оценены.