gpt4 book ai didi

c++ - undefined object 引用

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:54:08 25 4
gpt4 key购买 nike

下面是我的代码。我面临的问题是它说未定义对 Ball() 构造函数的引用。我在谷歌上搜索了一下,有人说这是一个链接错误。所以我还附上了我用来编译的 Make 文件。

World.h
#ifndef WORLD_H
#define WORLD_H

#include "Ball.h"
#include "Camera.h"
#include "Stick.h"

class World
{

public:
Ball ball[15];
Ball qBall;
Camera camera;
World();
void update();
void render();
};

#endif

world.cpp

#include "World.h"

World::World(){
// set all initial declaration
}
//**************************************************************
void World::update(){
for (int i = 0; i < 15; ++i)
{
ball[i].update();
}
}

//**************************************************************
void World::render(){

}

这是我遇到的错误:

    ./libWorld.a(World.o): In function `World::World()':
World.cpp:(.text+0x21): undefined reference to `Ball::Ball()'
World.cpp:(.text+0x46): undefined reference to `Ball::Ball()'
World.cpp:(.text+0x58): undefined reference to `Camera::Camera()'
./libWorld.a(World.o): In function `World::update()':
World.cpp:(.text+0x97): undefined reference to `Ball::update()'
collect2: ld returned 1 exit status
make: *** [a.out] Error 1

如果出现链接错误,我正在使用的 make 文件:

    a.out: readobj.cpp libBall.a libWorld.a libCamera.a libStick.a
g++ -Wall readobj.cpp -L. -lBall -lWorld -lCamera -lStick -lglut -lGLU

libWorld.a: World.o
ar -rcs libWorld.a World.o
World.o: World.cpp World.h libCamera.a libStick.a libBall.a
g++ -Wall -c World.cpp -L. -lCamera -lStick -lBall


libCamera.a: Camera.o
ar -rcs libCamera.a Camera.o
Camera.o: Camera.cpp Camera.h Game.h
g++ -Wall -c Camera.cpp


libStick.a: Stick.o
ar -rcs libStick.a Stick.o
Stick.o: Stick.cpp Stick.h Game.h
g++ -Wall -c Stick.cpp


libBall.a: Ball.o
ar -rcs libBall.a Ball.o
Ball.o: Ball.cpp Ball.h Game.h
g++ -Wall -c Ball.cpp

最佳答案

问题出在链接库顺序上,现在已修复。

关于c++ - undefined object 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22872372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com