我正在使用GLFW学习OpenGL,并且当时对makefile没有很好的理解.我有OpenGL工作,但我决定更多地学习makefile.经过很多网站,时间和反复试验,我想出了这个:
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
小智.. 7
我遇到了完全相同的错误.
我正在开发Windows和Linux,同时使用Filezilla传输我的文件.以前在Windows上使用Cygwin构建的代码,但在从我的Linux主机下载文件后不会.
该过程建立在Windows ==>上传到Linux并构建==>进行一些更改==>下载到Windows并构建==>获取错误.
然后我突然意识到我已经使用源传输了Linux目标文件,所以我删除了所有.o文件,构建顺利.
我不能说这是否是@ Zaerospi的问题,但它似乎是我错误的根源.
具有相同错误的任何其他人可能想要尝试擦除其目标文件并重建.
我遇到了完全相同的错误.
我正在开发Windows和Linux,同时使用Filezilla传输我的文件.以前在Windows上使用Cygwin构建的代码,但在从我的Linux主机下载文件后不会.
该过程建立在Windows ==>上传到Linux并构建==>进行一些更改==>下载到Windows并构建==>获取错误.
然后我突然意识到我已经使用源传输了Linux目标文件,所以我删除了所有.o文件,构建顺利.
我不能说这是否是@ Zaerospi的问题,但它似乎是我错误的根源.
具有相同错误的任何其他人可能想要尝试擦除其目标文件并重建.