构建错误:"cannot find target for file" 和 "undefined reference"
Build errors: "cannot find target for file" and "undefined reference"
我正在使用 codeblock,我的编译器设置是 [-std=c++0x]
。
我使用以下代码创建了一个简单的项目:
main.cpp
#include <iostream>
#include "Cat.h"
using namespace std;
int main() {
Cat action;
action.meow();
action.jump();
return 0;
}
Cat.h
#ifndef CAT_H_INCLUDED
#define CAT_H_INCLUDED
class Cat {
public:
void meow();
void jump();
};
#endif // CAT_H_INCLUDED
CatProcess.cpp
#include <iostream>
#include "Cat.h"
using namespace std;
void Cat::meow() {
cout << "meow" << endl;
}
void Cat::jump() {
cout <<"jump" << endl;
}
错误信息:
当我构建并 运行 整个项目时,此错误出现在我的 IDE:
的 main.cpp 第 8 行
undefined reference to 'Cat::meow()'
当我构建 运行 CatProcess.cpp
时,出现此错误:
error: Cannot find target for file
构建日志:
mingw32-g++.exe -Wall -fexceptions -g -std=c++0x -c C:\Users\Im_so\Documents\CodeBlock_Projects\ClassesForCats\main.cpp -o obj\Debug\main.o
obj\Debug\main.o: In function 'main':
C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:8: undefined reference to 'Cat::meow()'
C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:9: undefined reference to 'Cat::jump()'
collect2.exe: error: ld returned 1 exit status
默认情况下,在 Code::Blocks 中,当您创建新的源文件时,它不会添加到任何构建目标。创建文件时有两个复选框 - 调试和发布。如果要将已创建的文件添加到目标,请在代码块中右键单击该文件 -> 属性 -> 构建并选中调试和发布。
我正在使用 codeblock,我的编译器设置是 [-std=c++0x]
。
我使用以下代码创建了一个简单的项目:
main.cpp
#include <iostream>
#include "Cat.h"
using namespace std;
int main() {
Cat action;
action.meow();
action.jump();
return 0;
}
Cat.h
#ifndef CAT_H_INCLUDED
#define CAT_H_INCLUDED
class Cat {
public:
void meow();
void jump();
};
#endif // CAT_H_INCLUDED
CatProcess.cpp
#include <iostream>
#include "Cat.h"
using namespace std;
void Cat::meow() {
cout << "meow" << endl;
}
void Cat::jump() {
cout <<"jump" << endl;
}
错误信息:
当我构建并 运行 整个项目时,此错误出现在我的 IDE:
的 main.cpp 第 8 行undefined reference to 'Cat::meow()'
当我构建 运行 CatProcess.cpp
时,出现此错误:
error: Cannot find target for file
构建日志:
mingw32-g++.exe -Wall -fexceptions -g -std=c++0x -c C:\Users\Im_so\Documents\CodeBlock_Projects\ClassesForCats\main.cpp -o obj\Debug\main.o
obj\Debug\main.o: In function 'main': C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:8: undefined reference to 'Cat::meow()'
C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:9: undefined reference to 'Cat::jump()'
collect2.exe: error: ld returned 1 exit status
默认情况下,在 Code::Blocks 中,当您创建新的源文件时,它不会添加到任何构建目标。创建文件时有两个复选框 - 调试和发布。如果要将已创建的文件添加到目标,请在代码块中右键单击该文件 -> 属性 -> 构建并选中调试和发布。