如何使用带有Codeblocks的makefile

时间:2015-02-16 13:22:42

标签: c++ makefile codeblocks

当我使用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))

如何在编码块中使用makefile?

2 个答案:

答案 0 :(得分:3)

当您从codeblock内部运行构建时(无论是什么),它使用参数-f Makefile(多余但不会受到伤害)和Debug调用make,其中意味着它想要构建一个名为Debug的目标。

但是你的makefile没有定义任何名为Debug的目标,所以你得到了你看到的错误。

修改makefile并定义名为Debug的目标:

Debug: all

或者弄清楚如何让codeblock使用不同的参数调用make,这样它在命令行上就没有Debug

答案 1 :(得分:1)

Codeblock需要一个名为&#34; Debug:&#34;在构建项目的makefile中。

在正确设置之后问题的另一部分是获取代码块以在调试器下运行程序。单击&#34;红色播放按钮&#34;的示例,而不仅仅是齿轮按钮。设置一下:

确保-g在makefile中指定为gcc或g ++。

使用&#34;项目 - &gt;属性 - &gt;构建目标 - &gt;输出文件名&#34;指定Makefile生成的可执行文件的名称。

使用&#34;项目 - &gt;设置程序参数&#34;将命令行参数设置为程序。