【问题标题】:How to use gcc correctly from the ubuntu terminal?如何从 ubuntu 终端正确使用 gcc?
【发布时间】:2016-02-03 21:51:47
【问题描述】:
我正在尝试使用 gcc 从终端编译一个 .c 文件。该文件包括一个定义函数的个人库。这个 library.h 和 .c 文件在同一个目录中。
我收到以下消息错误
undefined reference to `function'"
我应该使用另一个参数吗:
gcc -o nameoutput filename
还是应该将 library.h 放在另一个目录中?
【问题讨论】:
标签:
c
ubuntu
gcc
undefined-reference
【解决方案1】:
假设您的当前工作目录中有library.c、library.h 和main.c:
$ gcc -Wall main.c library.c -o my_program
然后运行它:
$ ./my_program
【解决方案2】:
“未定义引用”表示链接器找不到包含function的编译体的目标文件;它与 .h 文件没有任何关系。
听起来您的情况是library.h 和library.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"
在任何需要它的代码中。