gpt4 book ai didi

c - 如何在静态库中隐藏目标文件名?

转载 作者:太空狗 更新时间:2023-10-29 15:07:35 26 4
gpt4 key购买 nike

我想交付一个C静态库,尽量隐藏内部实现。我在我的代码上使用了一个代码混淆器,它非常适合让人类无法理解的符号。我正在使用 xcode 4,我认为它具有类似 GCC 的标志。

我的问题是我的图书馆仍然包含我想隐藏或让人类无法理解的可读信息:

1- 目标文件名: 当我在 .a 上运行 nm 时,我仍然看到每个目标文件的名称。 (即 myObect1.o myObject2.o 等)。有没有办法从我的 .a 中删除这些名称?

2-文件路径: 当我在我的库上运行字符串时,我仍然看到头文件的路径以及一些 .c 文件路径(包括为 #include)。有没有办法也删除这些。 (GCcflags或其他方式)?

谢谢你的帮助,

爸爸

ps:我知道 nm 和字符串,但如果您知道任何其他工具,或者如果您可以建议我应该检查的其他任何东西是否正确隐藏在我的 .a 中,欢迎所有建议。

最佳答案

考虑像 SQLite 那样分发合并:http://www.sqlite.org/amalgamation.html .换句话说,分发单个 .o 文件和单个 .h 文件而不是库。

您必须将内部函数注释为静态。这也将为编译器提供进一步优化的机会。 Lua 使用这样的注解。参见例如 http://www.lua.org/source/5.1/ldo.h.html .对于合并,LUAI_FUNC 被定义为静态的。

关于c - 如何在静态库中隐藏目标文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8481435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com