晚上好! (上午?)
我想知道是否有人熟悉以下问题。这里有三个文件,分别是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还是编译器问题?
非常感谢任何帮助=)
答案 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添加到项目中,链接器会将它们链接在一起以解决这两个问题。