Code :: Blocks - 如何编译多个源文件

Mat*_*att 9 c++ codeblocks

我正在尝试编译一个包含多个源文件的程序 - 两个CPP文件和一个头文件,代码为:: blocks.作为一个例子,我创建了以下三个文件(由另一个论坛上的其他人创建的示例程序):

main.cpp中:

#include <stdio.h>
#include "other.h"

int main (void)
{
    printf("%d\n", getfavoritenumber());

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

other.cpp

#include "other.h"

int getfavoritenumber(void)
{
    return 3;
}
Run Code Online (Sandbox Code Playgroud)

other.h

#ifndef _OTHER_H_
#define _OTHER_H_

int getfavoritenumber(void);

#endif
Run Code Online (Sandbox Code Playgroud)

尽管这三个文件应该相互链接,但是当我尝试构建项目时,我收到错误"跳过链接阶段(构建目标没有要链接的目标文件)".

我究竟做错了什么?尝试编译单个文件会显示错误"该文件未分配给任何目标".

小智 18

这对我有用:

转到显示项目的左侧面板,然后右键单击.cpp文件.选择属性,然后转到构建.选中目标属于标题下的框:"调试"和"发布"


小智 1

我这样做了:

  • 我在Code::Blocks中创建了一个控制台项目

  • 对于每个文件,我File|New创建一个空文件,使用您指定的名称将其添加到项目中,并将问题中的相关代码粘贴到每个文件中。

  • 编译并运行生成的可执行文件。

一切都按预期进行。如果它不适合您,请描述您如何创建该项目。Code::Blocks 绝对需要一个项目 - 它不能很好地处理单个文件。如果需要,请从命令行使用 GCC。

编辑:

  • 通常最好将编译器与 CB 分开安装,因为 CB 实际上只是一个 IDE。我假设我们这里使用的是 Windows。访问http://tdm-gcc.tdragon.net 并从那里下载最新的 GCC 编译器。从命令行检查它是否有效。

  • 然后在 CB 中转到Settings|Compiler and Debugger并选择Toolchains executables选项卡。然后导航到安装 TDM GCC 内容的目录的根目录(根目录,而不是根目录中的 bin 目录),一切都应该顺利。

如果最终这不起作用,请尝试访问http://forums.codeblocks.org上的 CB 支持论坛。