Я изучал OpenGL с помощью GLFW и в то время не очень хорошо разбирался в make-файлах. У меня работал OpenGL, но я решил больше изучить make-файлы. Я придумал это после множества веб-сайтов, часов проб и ошибок:
EXENAME = "OpenGL Demo"
CC = gcc
SRCS = ../src/OpenGLDemo.c
OBJS = $(SRCS: .c = .o)
CFLAGS = -Wall -g -c
LIBS = -L./libs -lglfw3 C:/Windows/SysWOW64/opengl32.dll C:/Windows/SysWOW64/glu32.dll
all: opengldemo exe
exe: $(OBJS)
$(CC) $(OBJS) -o $(EXENAME) $(LIBS)
opengldemo: ../src/OpenGLDemo.c
$(CC) $(CFLAGS) ../src/OpenGLDemo.c
clean:
rm -f $(EXENAME)
rebuild: clean all
Но когда я компилирую, он выдает эту ошибку, когда пытается создать исполняемый файл:
collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped
makefile:11: recipe for target 'exe' failed
make: *** [exe] Error 1
Он создает исполняемый файл, но мой компьютер говорит, что не может его запустить. Я попытался выполнить поиск в Интернете и нашел отчеты об ошибках gcc, включая эту ошибку. Вероятно, я делаю что-то глупое, чтобы получить эту ошибку. Как исправить эту ошибку и что она означает?
РЕДАКТИРОВАТЬ: Полный вывод:
make
gcc -Wall -g -c ../src/OpenGLDemo.c
gcc ../src/OpenGLDemo.c -o "OpenGL Demo" -L./libs -lglfw3
C:/Windows/SysWOW64/opengl32.dll C:/Windows/SysWOW64/glu32.dll
cygwin warning:
MS-DOS style path detected: C:/Windows/SysWOW64/opengl32.dll
Preferred POSIX equivalent is: /cygdrive/c/Windows/SysWOW64/opengl32.dll
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped
makefile:11: recipe for target 'exe' failed
make: *** [exe] Error 1
ld
. Но поскольку вы, кажется, используете cygwin, оба решения могут быть проблематичными. В Linux я бы начал отладку, используяstrace -f
илиvalgrind --track-origins=yes --trace-children=yes
и тому подобное, но в cygwin это может быть невозможно. Однако вы, вероятно, лучше знакомы с cygwin, чем я. 19.08.2014