1
我編寫了一個小型的OpenGL程序,顯示一個簡單的四邊形。爲了完成這項工作,我在我的Makefile中鏈接了-lglut。直到這裏一切都好。Linux上的OpenGL庫鏈接
這裏是我的Makefile文件內容:
NAME = Quad
CXX = g++
SRCS = main.cpp
OBJS = $(SRCS:.cpp=.o)
CXXFLAGS += -W -Werror -Wextra
LIBX += -lglut
RM = rm -f
all : $(NAME)
$(NAME) : $(OBJS)
$(CXX) -o $(NAME) $(OBJS) $(LIBX)
clean :
find . \(-name "*.o" -o -name "*~" -o -name "#*#" \) -exec $(RM) {} \;
fclean : clean
$(RM) $(NAME)
re : fclean all
.PHONY : all \
clean \
fclean \
re
但現在我想打一個鏈接,我自己librairies資源文件。 這裏是我的項目目錄的內容:
main.cpp
Makefile
Outbuilding/GL/include/glut.h
Outbuilding/GL/lib/glut32.lib
我包括申報的main.cpp
#include "gl/glut.h"
我嘗試編輯下面的Makefile,但它不工作(文件GL/glut.h沒有找到):
NAME = Quad
CXX = g++
SRCS = main.cpp
OBJS = $(SRCS:.cpp=.o)
CXXFLAGS += -W -Werror -Wextra
INCLUDE += -I./Outbuilding/GL/include -L./Outbuilding/GL/lib
LIBX += -lglut
RM = rm -f
all : $(NAME)
$(NAME) : $(OBJS)
$(CXX) -o $(NAME) $(OBJS) $(INCLUDE) $(LIBX)
clean :
find . \(-name "*.o" -o -name "*~" -o -name "#*#" \) -exec $(RM) {} \;
fclean : clean
$(RM) $(NAME)
re : fclean all
.PHONY : all \
clean \
fclean \
re
我也在我的源文件,試圖直接鏈接glut.h(#包括「./Outbuilding/GL/include/gl/glut.h」),但我有以下錯誤:
error : "APIENTRY" redefined
有人能幫助我嗎?
'#include「gl/glut.h」' - 這是一個錯字嗎? 如果你有'-I./Outbuilding/GL/include',你應該使用'#include「glut.h」' – ShPavel