我正在尝试编译一个包含多个源文件的程序 - 两个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
尽管这三个文件应该相互链接,但是当我尝试构建项目时,我收到错误“链接阶段被跳过(构建目标没有要链接的目标文件)”。
我做错了什么?尝试编译单个文件会出现错误“该文件未分配给任何目标”。
答案 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;递归添加文件...