Недопустимая инструкция (ядро сброшено) с использованием графической библиотеки Ubuntu VM + JUCE - PullRequest
0 голосов
/ 28 октября 2018

Всякий раз, когда я пытаюсь запустить скомпилированную программу, используя графическую библиотеку JUCE, с университетского компьютера (который, как я считаю, имеет i5s, но не уверен в специфике), он работает правильно, без ошибок.Однако, если я пытаюсь запустить его с моего домашнего компьютера (i7-3770), он корректно компилируется, но выдает ошибку SIGILL, я посмотрел на него с помощью gdb, но мои знания по сборке не самые лучшие.Я пытался использовать такие флаги, как "-O2 -march=ivybridge" и другие, но ни одна комбинация не работает.Я сократил код до минимума, но все равно получаю ту же ошибку.

main.cpp:

#include <stdio.h>
#include <graphics.h>


int main(void) {
    initialiseGraphics();
    loop( [&](){

    }
    );
    return 0;
}

Makefile:

ifeq ($(origin ROOTDIR), undefined)
ROOTDIR=../..
endif
include $(ROOTDIR)/MakefileDefs.inc

# Build path
BUILD_DIR = build

TARGET = circlesAndRects
CPP_SOURCES = main.cpp

#######################################
# build the application
#######################################
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(CPP_SOURCES:.cpp=.o)))
vpath %.cpp $(sort $(dir $(CPP_SOURCES)))

CFLAGS += -I$(INCDIR) -I$(JUCEINSTALL)/modules

LIBS =  $(LIBDIR)/libgraphics.a $(JUCELIB) $(LIBDIR)/libufcfgl-30-1.a

$(BUILD_DIR)/%.o: %.cpp Makefile | $(BUILD_DIR)
    $(ECHO) compiling $<
    $(CC) -c $(CFLAGS) $< -o $@

$(BUILD_DIR)/$(TARGET): $(OBJECTS) $(LIBS) Makefile
    $(ECHO) linking $<
    $(CC) $(OBJECTS) $(LIBS) $(LINUXLIBFALGS) $(LDFLAGS) -o $@
    $(ECHO) success

$(BUILD_DIR):
    mkdir -p $@

#######################################
# install
#######################################
install:


#######################################
# clean up
#######################################
clean:
    -rm -fR .dep $(BUILD_DIR)

#######################################
# dependencies
#######################################
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)

.PHONY: clean all

Информация GDB:

Thread 1 "graphics1" received signal SIGILL, Illegal instruction. 
0x000000000043a6ed in juce::File::isDirectory() const ()
...