【发布时间】:2014-09-27 19:30:12
【问题描述】:
【问题讨论】:
-
makefile 不仅仅是一个 shell 脚本。如果你想学习编写 makefile,你应该阅读一些教程并从更简单的开始。
【问题讨论】:
使期望“规则”具有以下形状:
target: prerequisites ...
command
...
在第一次调用 gcc 之前,您需要在 makefile 中定义一个目标。只需在开头添加一行glew:。带有命令的每一行都需要以制表符开头。
请查看 make 手册的介绍部分以获取更多信息:https://www.gnu.org/software/make/manual/html_node/Introduction.html
您的 makefile (makefile.mod) 的修改版本
## makefile based on answer http://stackoverflow.com/a/6005262/663518
## http://stackoverflow.com/questions/6005076/building-glew-on-windows-with-mingw
.PHONY: glew
glew: libs exe
## libs
libs: lib/glew32.dll lib/glew32mx.dll
lib/glew32.dll:
@echo ##compiling libglew32
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c
gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32.a src/glew.o
lib/glew32mx.dll:
@echo ##compiling libglew32mx
gcc -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c
gcc -shared -Wl,-soname,libglew32mx.dll -Wl,--out-implib,lib/libglew32mx.dll.a -o lib/glew32mx.dll src/glew.mx.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
ar cr lib/libglew32mx.a src/glew.mx.o
## glewinfo and visualinfo programs.
exe: bin/glewinfo.exe bin/visualinfo.exe
bin/glewinfo.exe: lib/glew32.dll
@echo ##compiling glewinfo.exe
gcc -c -O2 -Wall -W -Iinclude -o src/glewinfo.o src/glewinfo.c
gcc -O2 -Wall -W -Iinclude -o bin/glewinfo.exe src/glewinfo.o -Llib -lglew32 -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
bin/visualinfo.exe: lib/glew32.dll
@echo ##compiling visualinfo
gcc -c -O2 -Wall -W -Iinclude -o src/visualinfo.o src/visualinfo.c
gcc -O2 -Wall -W -Iinclude -o bin/visualinfo.exe src/visualinfo.o -Llib -lglew32 -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
> make -f makefile.mod
##compiling libglew32
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude...
...
make -f makefile.mod libs 构建 dll
make -f makefile.mod exe 构建 exe 和 dll(如果需要)
【讨论】: