如何在Codeblocks中使用makefile

5
当我使用Codeblocks创建并添加makefile项目时,遇到了一些问题。我创建了一个包含3个文件的项目:main.cpp、View.cpp和View.h。
main.cpp:
#include <iostream>
#include "View.h"
using namespace std;
int main(int argc, char** argv) {
    View view;
    view.box();
}

View.cpp:

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

using namespace std;
void View::box()
{
    int i=3;

    switch(i)
    {
        case 1:

            break;
        case 2:

            break;
        case 3:
            break;
    }
    cout<<"AAAA";


};

View.h:

#ifndef VIEW_H_INCLUDED
#define VIEW_H_INCLUDED

class View
{
//// ****************************

//// ---------------------------


//// ---------------------------

public :

void box();


//// ****************************
};

#endif

并且Makefile:

all :   lienket
lk  :   main.o View.o
    g++ main.o  View.o  -o  lienket
main.o  :   main.cpp
    g++ -c main.cpp
View.o  :   View.cpp
    g++ -c  View.cpp

我将其标记为自定义Makefile。(项目->属性->项目设置)

最后我构建,但收到以下错误:

-------------- Build: Debug in lienket (compiler: GNU GCC Compiler)---------------

Running command: mingw32-make.exe -f Makefile Debug
mingw32-make.exe: *** No rule to make target `Debug'.  Stop.
Process terminated with status 2 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))

我该如何在Codeblocks中使用makefile?


main.cpp 应该 #include "View.h" - juanchopanza
mingw32-make.exe -f Makefile Debug 正在尝试执行您的 makefile 中不存在的“Debug”目标。为了更快地解决问题,只需将您的 makefile 中的“all”替换为“Debug”。要了解正确的解决方案,请检查设置是否需要禁用“Debug”标志,并检查是否需要更改其他设置。 - Sagar Sakre
抱歉,我之前发布的内容丢失了,但我已经修复了。 - user3012073
在答案区发布您的修复并接受它。 - Sagar Sakre
抱歉Sagar Sakre,我不理解你的解决方案。我的代码有问题。我的项目出了错。 - user3012073
2个回答

5
当你在 codeblock 中运行构建时(无论它是什么),它会使用参数-f Makefile(这是冗余的,但不会有影响)和 Debug 调用make命令,这意味着它想要构建一个名为 Debug 的目标。
但是你的makefile没有定义任何名为 Debug 的目标,因此你会看到你所见到的错误。
要么修改你的makefile并定义一个名为 Debug 的目标:
Debug: all

否则,您可以想办法让codeblock使用不同的参数调用make,以便在命令行中不包含Debug

你的思维 Debug:全部 全部:lienket lk:main.o View.o g++ main.o View.o -o lienket main.o:main.cpp g++ -c main.cpp View.o:View.cpp g++ -c View.cpp - user3012073
3
我不理解你的评论。 - MadScientist

1

Codeblock需要在构建项目的makefile中指定一个名为“Debug:”的目标。

在正确设置这一点之后,解决问题的另一部分是使codeblock在调试器下运行程序。例如,点击“红色播放按钮”,而不仅仅是齿轮按钮。为了设置它:

确保在您的makefile中指定了-g到gcc或g++。

使用“项目-属性-构建目标-输出文件名”来指定由您的Makefile生成的可执行文件的名称。

使用“项目-设置程序参数”来设置程序的命令行参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接