编译c时链接自定义头文件

使用g在 linux上编译C程序时,如何链接到自己的头文件中?

例如,我有一个包含以下内容的文件:

#include <stdlib.h>
#include <GL/glut.h>
#include <math.h>
#include <stdio.h>
#include "3DCurve.h"

当我使用以下命令编译时:

g++ -lm -lglut -lGL -o 3dcurve Example_8_1.cpp

我收到以下错误:

undefined reference to 'draw3Dcurve(double, double, double, double, double, double)'

如何将3DCurve.h文件链接到编译器?头文件及其实现与我正在编译的文件位于同一文件夹中.我的理解是编译器应该找到它,如果它位于同一个文件夹中.

我得不到什么?

一个不链接到头文件,一个只包括它们.但是,如果头文件具有相应的实现文件,则必须将其包含在编译行中,或者从中创建一个目标文件,并将其包含在编译行中.从您的错误中,您看起来有一个尚未正确处理的实现文件.

假设实现DCurve.h被称为3DCurve.cpp,那么你可以这样做:

g++ -lm -lglut -lGL -o 3dcurve 3DCurve.cpp Example_8_1.cpp

其他选项是使用-c g选项制作目标文件3DCurve.o,然后

g++ -lm -lglut -lGL -o 3dcurve 3DCurve.o Example_8_1.cpp

或者,创建一个共享或静态库,并像使用其他第三方库一样使用它.

相关文章
相关标签/搜索