这是一个复杂的帖子,所以请耐心等待。我已经尽可能地把它压缩了。
我将从使用PIC微控制器的不同工具链来到XC8。使用以前的编译器,设置和使用我自己的库,并在这些库中使用定义似乎要容易得多。
我想编写自己的函数库以供重用。我还希望将它们全部存储在我自己选择的目录结构中(这样它们就可以在多台机器之间自动同步,并出于各种其他原因)。下面是一个简化的虚构文件结构。
projectsmy_project//当前项目目录
some_other_directorymy_librarycomms_lib//我的通讯库
some_other_directorymy_libraryadc_lib//我的ADC库
现在为了便于论证,我们假设我的每个库都需要__XTAL_FREQ定义。每个项目的频率可能不同。
以下是我的问题:
-
告诉编译器我的库文件所在位置的最佳/最有效的方法是什么?
-
短__XTAL_FREQ添加到每个头文件,我如何使定义可用于所有他们?
可能有人会说,它应该在一个单独的头文件(让我们称之为project_config.h)。然后可以将该文件与每个未来的项目放在一起,并进行相应的更改。如果单独的头文件是答案,那么接下来的问题是,我如何获得库头文件(不在与项目相同的目录中)以正确地引用每个新项目的project_config.h文件?
提前感谢Mark
如果您正在使用MPLABX,您可以考虑为您的库创建一个或多个库项目,然后可以从其他MPLABX项目中包含这些库。
对于__XTAL_FREQ的全局定义,我认为应该可以将符号定义传递给命令行,但不确定。