Erro de símbolo indefinido

1

Estou trabalhando em um projeto base por outra pessoa e sou novato no sistema Linux.

Eu sei como usar o sqlite3 no Visual Studio do Windows, mas no Linux ele não está funcionando.

Cheguei à conclusão de que pode ser por causa do arquivo make, aqui está:

LIBPS4  :=  $(PS4SDK)/libPS4

TEXT    :=  0x926200000
DATA    :=  0x926300000

CC  :=  gcc
AS  :=  gcc
OBJCOPY :=  objcopy
ODIR    :=  build
SDIR    :=  source
IDIRS   :=  -I$(LIBPS4)/include -I. -Iinclude
LDIRS   :=  -L$(LIBPS4) -L. -Llib
CFLAGS  :=  $(IDIRS) -O2 -std=gnu11 -fno-builtin -nostartfiles -nostdlib -Wall -masm=intel -march=btver2 -mtune=btver2 -m64 -mabi=sysv -mcmodel=large
SFLAGS  :=  -nostartfiles -nostdlib -masm=intel -march=btver2 -mtune=btver2 -m64 -mabi=sysv -mcmodel=large
LFLAGS  :=  $(LDIRS) -Xlinker -T $(LIBPS4)/linker.x -Wl,--build-id=none -Ttext=$(TEXT) -Tdata=$(DATA)
CFILES  :=  $(wildcard $(SDIR)/*.c)
SFILES  :=  $(wildcard $(SDIR)/*.s)
OBJS    :=  $(patsubst $(SDIR)/%.c, $(ODIR)/%.o, $(CFILES)) $(patsubst $(SDIR)/%.s, $(ODIR)/%.o, $(SFILES))

LIBS    :=  -lPS4 -lpthread

TARGET = $(shell basename $(CURDIR)).bin

$(TARGET): $(ODIR) $(OBJS)
    $(CC) $(LIBPS4)/crt0.s $(ODIR)/*.o -o temp.t $(CFLAGS) $(LFLAGS) $(LIBS)
    $(OBJCOPY) -O binary temp.t $(TARGET)
    rm -f temp.t

$(ODIR)/%.o: $(SDIR)/%.c
    $(CC) -c -o $@ $< $(CFLAGS)

$(ODIR)/%.o: $(SDIR)/%.s
    $(AS) -c -o $@ $< $(SFLAGS)

$(ODIR):
    @mkdir $@

.PHONY: clean

clean:
    rm -f $(TARGET) $(ODIR)/*.o

Estou recebendo um erro de:

/usr/bin/ld: build/shell.o: undefined reference to symbol 'fflush@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libc.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

Como faço para corrigir isso?

    
por Matan Yashar 29.03.2018 / 23:27

0 respostas