【发布时间】:2012-05-20 14:33:37
【问题描述】:
我有一个包含一些 .h 和 .c 文件的文件夹,我想在我的项目中使用头文件。
我已经使用“添加现有项目”将它们包含在我的项目的“头文件”文件夹中,但是当我尝试“#include”它们时,编译器(mplabc18\v3.41)说“无法找到文件 xyz.h”
那么,我应该怎么做才能使用这些文件而不将它们复制到项目文件夹中?
【问题讨论】:
我有一个包含一些 .h 和 .c 文件的文件夹,我想在我的项目中使用头文件。
我已经使用“添加现有项目”将它们包含在我的项目的“头文件”文件夹中,但是当我尝试“#include”它们时,编译器(mplabc18\v3.41)说“无法找到文件 xyz.h”
那么,我应该怎么做才能使用这些文件而不将它们复制到项目文件夹中?
【问题讨论】:
只需使用“添加”对话框将标题添加到项目中,然后选择“此文件用于此项目,使用相对路径”不记得它是否是此文本,但它类似于。
然后在你的文件中做正常的声明:
#include "your_header.h"
这应该可以正常工作。
--更新
使用新的 MPLAB X
执行以下操作:
点击文件->项目属性
选择 Conf -> C18(全局选项)-> mcc18
对于 XC8,这是在 Conf > XC8 编译器下
点击属性“包含目录”的“...”按钮
点击“浏览按钮”
找到您的项目目录
点击打开,然后点击确定并应用
构建您的应用!
现在应该可以了。
【讨论】:
我知道这是一个老问题,但我想添加另一个提示,因为我自己只是偶然发现了它。如果在 Windows 和 Linux 系统之间来回切换,一定要注意文件名中的大小写。在 Windows 上,这没关系。但是,在 Linux 上,您需要确保您的 #include 引用与实际文件具有相同的大小写。
如果文件在磁盘上保存为“UARTIO.INC”,则您的包含需要:
#INCLUDE "UARTIO.INC" **EXACTLY**
如果你把它写成:
#INCLUDE "UARTIO.inc", or #INCLUDE "uartio.inc"
它在 Windows 上可以正常工作,但在 Linux 上会因“无法找到包含文件”错误而失败。
请注意,将 MPLAB 设置为忽略大小写与此无关。
【讨论】: