0
       gcc main.c -o main -I include 

我正在创建一个具有以下目录结构的小型 c 应用程序:

应用程序=>

  • => src(一个目录,包含所有源文件)
  • =>包含(包含所有头文件的目录)
  • => common(一个目录,包含所有公共文件)
  • => main.c

现在我正在尝试运行包含#include指令的main.c ,以包含来自include目录的头文件以及对commonsrc目录中.c文件的函数调用。我正在使用-I选项,但它仅对一个目录路径指示有用。编译器将如何查看所有srccommoninclude目录来解析调用。请在使用gcc编译时建议我一个命令或制作文件以提供多个目录的路径。

4

1 回答 1

5

允许多个-I选项。目录搜索选项 -I中的选项描述说明:

将目录 dir 添加到要搜索头文件的目录列表的头部。这可用于覆盖系统头文件,替换您自己的版本,因为这些目录在系统头文件目录之前搜索。但是,您不应使用此选项来添加包含供应商提供的系统头文件的目录(为此使用 -isystem)。如果您使用多个 -I 选项,则目录按从左到右的顺序扫描;标准系统目录紧随其后。

例如:

gcc main.c -o main -Iinclude -Isrc/include -Icommon/include

请注意,如果main.c使用在另一个.c文件中实现的函数,则其他.c文件也需要编译并链接到最终程序二进制文件中。例如:

gcc main.c src/another.c -o main -Iinclude -Isrc/include -Icommon/include

于 2013-03-22T12:15:57.873 回答