如何将生成文件与代码块一起使用

How use a makefile with Codeblocks

本文关键字:代码 一起 文件      更新时间:2023-10-16

我在创建和添加带有代码块的makefile项目时遇到了一些问题。我创建了一个有3个文件的项目:main.cpp;View.cpp;视图.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";

};

视图.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))

如何将生成文件与代码块一起使用?

当您从codeblock内部运行构建时(不管是什么),它会调用带有参数-f Makefile(这是多余的,但不会造成伤害)和Debug的make,这意味着它想要构建一个名为Debug的目标。

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

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

Debug: all

或者想办法让codeblock用不同的参数调用make,这样它就不会在命令行上有Debug

Codeblock需要在构建项目的makefile中有一个名为"Debug:"的Target。

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

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

使用"项目->属性->构建目标->输出文件名"指定Makefile生成的可执行文件的名称。

使用"Project->Set programs arguments"为程序设置命令行参数。