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

Всякий раз, когда я пытаюсь запустить скомпилированную программу, используя графическую библиотеку 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 ()

0 ответов

Другие вопросы по тегам