我知道有一些关于此的帖子,但我似乎无法做到正确。
我正在使用geany和gcc开发一个共享项目。文件结构如下所示:
`/Documents/.../project/ main directory of project with makefile`
`/Documents/.../project/src here are some sourcefiles and headers`
`/Documents/.../project/src/extended here are some other source and header files`
`/Documents/.../project/src/tools other header and source files`
现在假设我正在处理/ tools中包含from的文件中的源文件
#include"/extended/some_header.h"
因为我的makefile配置为从/src
搜索文件。但是,当我正在尝试编译我正在处理的文件时(通过使用geany编译选项,它只调用gcc)我无法编译它,因为它在/extended/some_header.h
文件夹中找不到/src
。我试过添加
-iquotes/Documents/.../project/src
由geany调用gcc,但它也不起作用。
答案 0 :(得分:1)
-I
标志告诉gcc
编译器它应该在哪里查找标头文件。将-Idir
传递给编译器会将dir
路径附加到搜索列表的头部,从而有效地使此路径优先于先前(或系统)定义的路径。至于源路径 - gcc
本身没有这样的选项。传递给编译器的每个源文件都必须具有它的路径(绝对路径或相对路径)。为了解决这个问题,可以提供Makefile
,定义要编译的文件列表。