我正在编写一个OpenGL程序,而且我遇到了与math3d.h链接的问题。
我正在使用Ubuntu和g ++。
问题是我没有安装math3d的软件包,因为我从网上得到了头文件和一个带有OpenGL的bpp文件。所以我只是将头文件和.cpp文件复制到本地目录并执行了
#include "math3d.h"
但问题是我曾经使用开关通过给出链接其他头文件,如gl.h,glu.h,glut.h。
g++ test.cpp -lGL -lGLU -lglut.
但我不知道为math3d提供什么。我得到一个错误,说明未定义的函数引用。当我不为这些相应的库中的函数提供-lGL等时,我曾经得到这个错误。
我完全被困在这里,我不知道该怎么办,如果没有这个,我就无法前进。
答案 0 :(得分:1)
您没有链接头文件。您包含它们,然后将* .cpp文件生成的目标文件链接在一起。
g++ test.cpp math3d.cpp -lGL -lGLU -lglut
......它有效。
您缺少的是任何类型的构建系统(阅读Makefile)。您需要先构建math3d.cpp,然后再构建测试程序。
示例Makefile:
CC=g++
CFLAGS=-c -Wall
LDFLAGS=-lGL -lGLU -lglut
SOURCES=test.cpp math3d.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=test
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
嗯,你知道,这个甚至可能有效:&gt;
答案 1 :(得分:0)
您的问题存在一些问题:
答案 2 :(得分:0)
还需要编译math3d.cpp:
g++ test.cpp math3d.cpp -lGL -lGLU -lglut