C ++ Code ::不用头文件编译的块

时间:2015-12-05 11:18:07

标签: c++ codeblocks

晚上好! (上午?)

我想知道是否有人熟悉以下问题。这里有三个文件,分别是Cat.cpp,Cat.h和CatMain.cpp。问题如下:

当我尝试构建Cat.cpp时,我收到错误"对WinMain @ 16"的未定义引用。

当我尝试构建CatMain.cpp时,我得到了说话和跳转函数的未定义引用错误。

文件位于同一文件夹中,代码只有一行:

Cat.cpp

function hoursLessons() {

$con = new mysqli('localhost', 'root', 'root', 'myDB');


// Total Views

$views_sql = "SELECT SUM(views) as total FROM articles";
$views_result = $con->query($views_sql);
$views_row = $views_result->fetch_array(MYSQLI_ASSOC);
$views_total = $views_row['total'];

// Total Minutes

$minutes_sql = "SELECT SUM(time) as total FROM articles";
$minutes_result = $con->query($minutes_sql);
$minutes_row = $minutes_result->fetch_array(MYSQLI_ASSOC);
$minutes_total = $minutes_row['total'];

// Convert Minutes to Hours

$hours = floor($minutes_total / 60);
$totalHours = $hours * $views_total;

return $totalHours;

$views_result->free();
$minutes_result->free();
$con->close();

}

Cat.h

#include <iostream>
#include "Cat.h"

using namespace std;

void speak()
{
    cout << "meow" << endl;
}

void jump()
{
    cout << "meow?" << endl;
}

CatMain.cpp

#ifndef CAT_H
#define CAT_H

void speak();
void jump();

#endif // CAT_H

这段代码有什么问题吗?或者是否有人知道这是Code :: Blocks还是编译器问题?

非常感谢任何帮助=)

2 个答案:

答案 0 :(得分:0)

您的代码目前所做的一切都是这样的:

Cat.cpp ::

#include <iostream>
using namespace std;
void speak();
void jump();
void speak()
{
    cout << "meow" << endl;
}

void jump()
{
    cout << "meow?" << endl;
}

CatMain.cpp ::

#include <iostream>

using namespace std;
void speak();
void jump();
int main()
{
    speak();
    jump();
    return 0;
}

Cat.cpp缺少main方法,因为它无法编译。

您的CatMain.cpp没有speak()jump()的任何定义,因此未定义错误。

  

点:CatMain.cpp不知道Cat.cpp正在尝试解决什么问题。

int main() { return 0; }

添加到Cat.cpp应该让它编译。<​​/ p>

void speak(){
    cout << "defined" << endl;
}

void jump(){
    cout << "defined" << endl;
}

添加到CatMain.app也应该适用它。

答案 1 :(得分:0)

你的代码很好。 很可能你不想编译单独的文件,而是整个项目。您应该在IDE中将cpp添加到项目中,链接器会将它们链接在一起以解决这两个问题。