【问题标题】:Build errors: "cannot find target for file" and "undefined reference"构建错误:“找不到文件的目标”和“未定义的引用”
【发布时间】:2018-11-14 18:23:57
【问题描述】:

我正在使用代码块,我的编译器设置是[-std=c++0x]。 我用以下代码创建了一个简单的项目:

ma​​in.cpp

#include <iostream>
#include "Cat.h"
using namespace std;

int main() {
    Cat action;
    action.meow();
    action.jump();
    return 0;
}

猫.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 行:

对'Cat::meow()'的未定义引用

当我构建并运行CatProcess.cpp 时,会出现此错误:

错误:找不到文件的目标

构建日志:

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:在函数'main'中: C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:8: 未定义对'Cat::meow()'的引用

C:/Users/Im_so/Documents/CodeBlock_Projects/ClassesForCats/main.cpp:9:未定义对“Cat::jump()”的引用

collect2.exe:错误:ld 返回 1 个退出状态

【问题讨论】:

    标签: c++ codeblocks


    【解决方案1】:

    默认情况下,在 Code::Blocks 中,当您创建新的源文件时,它不会添加到任何构建目标。创建文件时有两个复选框 - 调试和发布。如果要将已创建的文件添加到目标,请在代码块中右键单击该文件 -> 属性 -> 构建并检查调试和发布。

    【讨论】:

    • 现在可以使用了!我非常感谢大家!我会记得检查它以防止它发生。
    猜你喜欢
    • 2012-12-05
    • 2013-10-25
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    相关资源
    最近更新 更多