std=c++1y -DGE_PLATFORM_LINUX -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"GE/Application.d" -MT"GE/Application.o" -o "GE/Application.o" "../GE/Application.cpp"
В этой строке отсутствует команда компилятора C ++, в результате чего оболочка пытается интерпретировать -DGE_PLATFORM_LINUX
как команду для выполнения.Это приводит к появлению ошибки в следующей строке:
/bin/sh: 1: -DGE_PLATFORM_LINUX: not found
Таким образом, объектный файл не создан и отсутствует во время ссылки.Почему пропущенная команда принята Eclipse, и эта ошибка игнорируется, это разные вопросы.
Решение: Убедитесь, что вы установили правильную команду компилятора;вызов компоновщика показывает, как он должен выглядеть:
g++ -shared -o "libGE.so" ./GE/Application.o
С https://stackoverflow.com/a/38220551/5794048: