我对makefiles搜索包含路径感到困惑。
假设我有一个文件结构:
inner join
我在makefile中使用SELECT
table_user.id,
table_user.name,
table_feedback.rate,
table_feedback.date
FROM table_feedback
INNER JOIN table_user
ON table_user.id = table_feedback.user_id
WHERE table_feedback = '2015-11-2'
expected_result_table
| user_id | name | rate | date |
|-------- |------|------|----------|
| 1 |jony | |2015-11-2 |
| 2 |tony | 1 |2015-11-2 |
| 3 |mona | 1 |2015-11-2 |
选项来指示包含的标题的路径。
以下是src1.cpp
中包含的标题.
├── hdrMainFolder.h
├── headers
│ └── hdrDifferentPath.h
├── makefile
├── sourceCode.cpp
└── src
├── hdrSamePath.h
└── src1.cpp
我应该在makefile中明确指出哪条路径?哪一个是不必要的?这下面就够了吗?
-I
是否需要指示标题的路径,是否只包含在同一路径下的源文件中?
答案 0 :(得分:0)
Which of the paths I should indicate explicitly in the makefile?
Which of them are unnecessary?
在命令shell上,运行编译指令的目录是编译器的当前目录 [使用用户直接命令或使用makefile进行编译]
当前目录(./)是编译器默认包含的头文件搜索路径。
如果创建子目录并将头文件放在子目录结构中,则需要为包含所需头文件的每个子目录显式添加-I
规则。
hdrMainFolder.h -> present in current directory, no need to add -I rule for this
hdrDifferentPath.h -> need to add -I rule (-I./headers)
hdrSamePath.h -> need to add -I rule (-I./src)
[您可以在上面添加的-I
规则中省略./,我会更加明确地遵循。
Is it necessary to indicate to the path of a header, if it is only
included by a source file under the same path?
是,源文件位置不用于确定用户定义的头文件搜索路径。需要明确提及它。