vc包含路径/附加包含路径/include的机制
来源:互联网 发布:ati hd 5770 mac 编辑:程序博客网 时间:2024/06/06 00:40
以下结论还需要进一步验证,所以会不断修正.
1. #include <> 不找当前目录和附加目录.只找默认属性表里配的路径(标准包含目录)
2. #include "" 都找
3. 查找顺序:当前目录(工程文件的目录),(此CPP文件的目录), 附加包含目录, 标准包含目录,
4. 特别的, 两种include都支持相对路径.
举例:
目录结构
test\ =>项目根目录
test\stdafx.h
test\stdafx.cpp
test\foo\
test\foo\a.cpp =>包含stdafx.h
stdafx.h
=========================
stdafx.h 文件的包含问题. 此项目不使用预编译头, 所以包含关系是很明确的包含关系
其中 a.cpp 包含stdafx.h, 但在 foo目录下没有stdafx.h文件. 咋办? 编译会失败, 提示找不到stdafx.h
怎么解决呢?
1. 如果不使用预编译,使用相对路径: a.cpp 里使用 #include "..\stdafx.h" 或者绝对路径.
2. 整个项目使用预编译头,stdafx.h 本身 作为预编译头文件或者包含到某个预编译头文件里.
3. 在foo目录放一个stdafx.h
4. 附加目录包含test目录.或者相对的或者绝对目录.
如果a.cpp 是存在于其他项目里的. 你不能改/或者不想改那个项目, 你只是把它包含到你的项目里来.
那么 只有使用预编译的方法.test\stdafx.cpp
=======================
如果foo目录已经有stdafx.h 但你不想让a.cpp包含它. 而想让a.cpp包含 test目录下的stdafx.h
有两个方法:
1. 如果不使用预编译, 就修改a.cpp里的包含语句, 改成相对或者绝对路径.
2. 整个项目使用预编译头,根目录下的 stdafx.h 本身 作为预编译头文件或者包含到某个预编译头文件里.
注意: 这个时候, 特别有个方法无效:
如果不使用预编译, 通过在附加包含目录最前面包含test\foo目录.或者foo目录的绝对路径的办法. 都无效. 因为vc会先找cpp所在目录
- vc包含路径/附加包含路径/include的机制
- 包含路径(include path) 库路径(lib path)VC++2010 (附加)包含目录 (附加)库目录
- VC++全局包含文件路径设置( Include 设置)
- php中require/include 包含相对路径的解决办法
- 为Visual Studio添加默认INCLUDE包含路径的方法
- 包含文件#include file相对文件路径和#include virtual相对根目录路径的区别
- CCS工程中include文件包含路径配置
- 【解惑】PHP中include文件包含路径搜索问题
- CCS工程中include文件包含路径配置
- VS2012全局包含文件路径设置( Include 设置)
- include("include_path")函数包含路径详讲__PHP_include()
- php中include包含页面路径问题解决方法
- linux上的apache的include指令包含不存在路径时,提示编码错误无法显示
- 为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法(更新)
- 给VS2010添加对所有工程都起作用的默认INCLUDE包含路径
- Qt Creator中,include路径包含过程(或如何找到对应的头文件)
- 为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法(更新)
- 为Visual Studio添加默认INCLUDE包含路径一劳永逸的方法
- AndEngine图片变灰效果实现
- java线程池主线程等待子线程执行完成
- Erlang随机数生成一注双色球
- HAL(1) -- 编写android内核驱动
- 数据结构导论
- vc包含路径/附加包含路径/include的机制
- 循环队列
- 常见的块状元素与内联元素
- MFC之CString对象的各种函数
- Axis2与Android的Json(Gson)通信传数据
- mysql查询语句in和exists二者的区别和性能影响
- TCP内核参数
- ThreadLocal使用示例
- HAL(2) -- 编写android C可执行文件调用驱动