我正在尝试编译一个包含多个源文件的程序 - 两个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)
尽管这三个文件应该相互链接,但是当我尝试构建项目时,我收到错误"跳过链接阶段(构建目标没有要链接的目标文件)".
我究竟做错了什么?尝试编译单个文件会显示错误"该文件未分配给任何目标".
小智 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 支持论坛。