Mar*_*ffx 4 c++ linker glut compilation header
使用g ++在linux上编译C++程序时,如何链接到自己的头文件中?
例如,我有一个包含以下内容的文件:
#include <stdlib.h>
#include <GL/glut.h>
#include <math.h>
#include <stdio.h>
#include "3DCurve.h"
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令编译时:
g++ -lm -lglut -lGL -o 3dcurve Example_8_1.cpp
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
undefined reference to 'draw3Dcurve(double, double, double, double, double, double)'
Run Code Online (Sandbox Code Playgroud)
如何将3DCurve.h文件链接到编译器?头文件及其实现与我正在编译的文件位于同一文件夹中.我的理解是编译器应该找到它,如果它位于同一个文件夹中.
我得不到什么?
一个不链接到头文件,一个只包括它们.但是,如果头文件具有相应的实现文件,则必须将其包含在编译行中,或者从中创建一个目标文件,并将其包含在编译行中.从您的错误中,您看起来有一个尚未正确处理的实现文件.
假设DCurve.h调用实现if ,3DCurve.cpp那么你可以这样做:
g++ -lm -lglut -lGL -o 3dcurve 3DCurve.cpp Example_8_1.cpp
Run Code Online (Sandbox Code Playgroud)
其他选项是使用g ++选项创建目标文件,然后3DCurve.o-c
g++ -lm -lglut -lGL -o 3dcurve 3DCurve.o Example_8_1.cpp
Run Code Online (Sandbox Code Playgroud)
或者,创建一个共享或静态库,并像使用其他第三方库一样使用它.
| 归档时间: |
|
| 查看次数: |
8494 次 |
| 最近记录: |