gcc main.c -o main -I include
我正在创建一个小的c应用程序,其中我的所有源文件都在src目录中,而所有头文件都在include目录中,所有常见文件都在公共目录中。所有这三个目录都在一个名为“app”目录的目录下以及main.c.现在我正在尝试运行main.c,其中包含#include指令包括来自include和函数调用的头文件,以及common和src目录中的.c文件。我正在使用-I但它仅对一个目录路径指示有用。 如何告诉编译器同时查看src common和include目录来解析调用。 请使用gcc编译时,建议我使用命令或make文件包含多个目录的路径。
答案 0 :(得分:3)
允许多个-I
选项。来自Options for Directory Search
的-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