0

我正在尝试编译一个 arduino 程序。

我想要一些已经编译的文件,除了草图之外的所有文件。我已经修改了 arduino IDE 来编译未编译的文件,但我需要拥有所有文件的 .h 文件。

是否可以在 CPP 中编译其他文件为 .o 而没有 .h 的文件?

我不希望任何人看到我的文件或代码,包括 .h。

如果可能的话,我将开始检查 arduino 代码以寻找如何修改它,但如果不是,我将不得不寻找另一种方法来做到这一点。

4

1 回答 1

4

Arduino 使用 C++,编译后的 C++ 函数名称被修改以包含 object(.o) 文件中的参数类型。使用兼容名称修饰编译用户代码的唯一方法是在编译时具有完整的函数声明。

因此,您至少必须提供一个头文件,其中包含用户将调用的任何函数的完整函数声明。这不能保密,它是你的 API,如果你不告诉他们,用户就无法使用它。

您不需要包含在公共头文件中的是内部私有函数或数据类型的声明或定义。

因此,创建一个library_public.h仅包含用户应该知道的声明的文件,并将其与您的 .o 文件一起提供。然后创建一个library_private.h包含所有秘密内容的文件。您的私有源代码将包括两者。

于 2013-05-21T17:21:17.237 回答