【问题标题】:Code::Blocks - how to compile multiple source filesCode::Blocks - 如何编译多个源文件
【发布时间】:2011-08-23 16:39:18
【问题描述】:

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

main.cpp:

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

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

    return 0;
}

其他.cpp

#include "other.h"

int getfavoritenumber(void)
{
    return 3;
}

其他.h

#ifndef _OTHER_H_
#define _OTHER_H_

int getfavoritenumber(void);

#endif

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

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

【问题讨论】:

  • 你选择了什么类型的项目?您应该选择“控制台应用程序”。

标签: c++ codeblocks


【解决方案1】:

确保所有文件(.h 和 .cpp)都已通过 Project>Add Files... 或 Project>Add FIles Recursively... 添加到项目中

【讨论】:

  • 不管怎样,这就是 Code::Blocks 解决方案。
【解决方案2】:

我这样做了:

  • 我在 Code::Blocks

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

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

一切都按预期进行。如果它不适合您,请描述您是如何创建项目的。 Code::Blocks 绝对需要一个项目——它不适用于单个文件。如果需要,请从命令行使用 GCC。

编辑:

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

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

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

【讨论】:

  • 我正在完全按照描述创建项目。我还尝试了 jonsca 的使用“控制台应用程序”项目类型的建议。我使用的是默认编译器——GNU GCC 编译器。这可能是问题所在——有多种编译器可供选择。我怎么知道它们是否安装正确? (我认为默认编译器包含在 code::blocks 的安装中 - 我几天前才下载该程序并选择了 mingGW 编译器附带的那个 - 但这个编译器不在列表中。我怀疑我的问题可能躺在这里?
【解决方案3】:

这对我有用:

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

【讨论】:

    【解决方案4】:

    我遇到了类似的问题,发现如果我刚刚关闭项目,创建一个新的空白控制台应用程序,然后导入现有文件,事情就可以正常编译了。

    【讨论】:

    • 这不是让你觉得 Code::blocks 是一坨屎吗?
    【解决方案5】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多