【发布时间】:2016-06-24 15:46:07
【问题描述】:
我有一些 .c 和 .h 文件,主要功能封装在 MAIN_FUNC.c 中。我需要将它们传递给一个将 MAIN_FUNC() 与他的文件集成的人。
但是,由于我的算法是机密的,我不能只发送 .c 和 .h 文件,因此我一直在研究静态和共享库。不过我还是有些疑惑。
1:在我看过的每个教程中,.h 也是必需的。有什么方法可以让他只发送一个库文件,他可以在他的代码中#include?
2:即使我必须传递 .hs 文件,我真的需要传递所有这些文件吗?我怎样才能只给他 libMAIN_FUNC.a 和 MAIN_FUNC.h?
3: 对于 .a 或 .so 库,是否有任何方法可以对文件进行逆向工程,以便可以看到.c 和 .h 代码?
【问题讨论】:
-
您分发的 .h 文件不必须与您用于编译库的文件相同,只要您确保函数原型完全匹配即可。也就是说,最好分发您实际使用的那些,这样就不会有不匹配的可能性。您可以重组您的 .h 文件,使其中一个仅包含导出的函数,不包含其他任何内容。\
-
啊,好吧,这很有帮助。我的 .h 文件中有一些宏,这就是我不想放弃它们的原因。
标签: c shared-libraries static-libraries