如何从ubuntu终端正确使用gcc?

时间:2015-11-03 16:30:11

标签: c ubuntu gcc undefined-reference

我尝试使用gcc从终端编译.c文件。该文件包括定义功能的个人库。此library.h和.c文件位于同一目录中。

我收到以下消息错误

undefined reference to `function'"

我应该使用另一个参数:

gcc -o nameoutput filename

或者我应该将library.h放在另一个目录中吗?

2 个答案:

答案 0 :(得分:1)

假设您当前的工作目录中有library.clibrary.hmain.c

$ gcc -Wall main.c library.c -o my_program

然后运行它:

$ ./my_program

答案 1 :(得分:1)

“未定义的引用”表示链接器找不到包含function的编译主体的目标文件;它与.h文件没有任何关系。

我听起来你的情况是library.hlibrary.c在一个目录中,main.c在不同的目录中。如果是这种情况,那么您的命令行将需要看起来像这样:

gcc -o program -I /path/to/library main.c /path/to/library/library.c 

-I /path/to/library表示gcc将在该路径中查找.h文件以及标准包含路径。这也允许你写

#include "library.h"

而不是

#include "/path/to/library/library.h"

在任何需要它的代码中。