2011-05-11 46 views
5

我想用多个源文件 - 两个CPP文件和一个头文件,用code :: blocks编译一个程序。举个例子,我创建了以下三个文件(由其他人在另一个论坛创建的示例程序):Code :: 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; 
} 

其他.h

#ifndef _OTHER_H_ 
#define _OTHER_H_ 

int getfavoritenumber(void); 

#endif 

尽管事实上这三个文件应该彼此链接,当我尝试构建项目时,收到错误“跳过链接舞台(构建目标没有目标文件链接)”。

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

+1

您选择了哪种类型的项目?您应该选择“控制台应用程序”。 – jonsca 2011-05-11 22:26:43

回答

1

我这样做:

  • 代码::块

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

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

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

编辑:

  • 它通常是从CB,这是真的只是一个IDE单独安装编译器是个好主意。我假设我们在Windows上。去http://tdm-gcc.tdragon.net并从那里下载最新的GCC编译器。检查它从命令行工作。

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

如果在一天结束时这不起作用,请尝试在CB支持论坛http://forums.codeblocks.org

+0

我正按照所述创建项目。我已经尝试过使用'Console Application'项目类型的jonsca建议。我使用的是默认编译器 - GNU GCC编译器。这可能是问题 - 有几种编译器可供选择。我如何知道它们是否安装正确? (我认为默认的编译器包含在安装的code :: blocks中 - 我几天前下载了该程序并选择了mingGW编译器自带的编译器 - 但这个编译器不在列表中,我怀疑我的问题可能在这里吗? – Matt 2011-05-11 22:47:11

+0

@Matt看到我的编辑 – 2011-05-11 22:57:12

1

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

2

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

+1

这是不是让你觉得Code :: blocks是一块废话? – 2015-08-25 18:57:19

15

这里是我工作:

转到左侧面板,上面写着项目,并在.cpp文件中单击鼠标右键。选择属性,然后去建立。选中目标属性中的框:“调试”和“发布”

+0

这解决了我的问题!谢谢! – Mitro 2015-01-25 13:37:44

0

确保所有文件(.h和.cpp)都已添加到项目中,使用项目>添加文件...或项目>添加文件递归...