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

时间:2011-05-11 22:09:26

标签: c++ codeblocks

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

main.cpp中:

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

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

    return 0;
}

other.cpp

#include "other.h"

int getfavoritenumber(void)
{
    return 3;
}

other.h

#ifndef _OTHER_H_
#define _OTHER_H_

int getfavoritenumber(void);

#endif

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

我做错了什么?尝试编译单个文件会出现错误“该文件未分配给任何目标”。

5 个答案:

答案 0 :(得分:17)

这对我有用:

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

答案 1 :(得分:1)

我这样做了:

  • 我在代码::块

  • 中创建了控制台项目
  • 对于我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支持论坛。

答案 2 :(得分:1)

创建我的第一个多源代码项目时遇到了类似的问题。我相信你遇到的问题不是链接,而是你的#include语句对我来说,目录与我的预期不同。要将头文件包含在我必须编写的项目#include "include/other.h"中,看看你的文件夹系统是如何构建的......如果你可以在项目中发布你拥有的文件夹/目录我可能能够给你一个更好的答案。

答案 3 :(得分:1)

我有一个类似的问题,发现如果我刚关闭了项目,创建了一个新的空白控制台应用程序,然后导入现有的文件开始编译好了。

答案 4 :(得分:0)

确保所有文件(.h和.cpp)已添加到项目中,包含项目&gt;添加文件...或项目&gt;递归添加文件...