【发布时间】:2013-02-28 08:34:28
【问题描述】:
首先我几乎是一个初学者,所以我不知道如何解释我需要什么,但我会试一试。 (我搜索了但找不到完整的答案)。
我正在自学 C 并使用代码块。
我想创建自己的自定义函数迷你库以在我的程序中使用。
我有一个名为“C”的文件夹。在“C”中,我有一个名为“Exercises”的文件夹,我在其中完成了书中所有的小项目。
同样在“C”中,我想要另一个名为“MyC”的文件夹,我将在其中保存自己的头文件和包含自定义函数实现的 .c 文件。 例如,这些 .h 和 .c 将保存在“MyC”中:
//test.h
#ifndef _TEST_H
#define _TEST_H
int mySum(int, int);
#endif // _TEST_H
//test.c
#include <stdio.h>
#include "test.h"
int mySum(int a, int b)
{
return a + b;
}
所以现在,我要做的是能够在“练习”中创建一个新项目,而不必将 test.h 和 test.c 的副本都带入项目中,而只需 #包括我的 test.h 并执行以下操作:
//testMain.c
#include <stdio.h>
#include <test.h>
int main(void)
{
printf("\n2 + 1 = %d", mySum(2, 1));
return 0;
}
我知道 用于标准标题,但引号用于当前文件夹中的标题,这就是我不想要的。
可以这样做吗?怎么样?
我已经阅读了关于进入设置>编译器和搜索目录添加我有标题但没有工作的路径。它给了我一个错误“对'mySum'的未定义引用” 我在#include 上尝试了引号和括号。
你们能否分步说明如何才能做到这一点?
【问题讨论】:
-
听起来你没有链接 C 文件。
-
您遇到了链接器错误,因为链接器无法在
MyC中找到少数符号的定义。您是否为MyC目录中的所有文件构建了一个库?看起来您正在使用某些 IDE 进行编译。是这样吗?你愿意直接使用命令行gcc吗? -
我不熟悉代码块,但通常你需要设置你的包含路径并将你的 C 文件从任何地方添加到你的项目中(除非你想创建一个库——但这可能太复杂了)。您需要阅读您的 IDE 文档,特别注意“包含文件”和“添加外部代码”或一些类似的主题。
-
是的,我以为我读过有关链接 .c 文件的信息,但我不知道该怎么做。 编辑是的,如果我使用命令行并编译“testMain.c”,它只有在我将所有文件都放在同一个文件夹中时才有效,但这就是我不想要的
-
您应该将文件
test.c添加到您的项目中。右键单击您的项目 > 添加文件 ... > 然后选择它。当你编译你的项目时,它会被编译并与之链接。