Objective-c 项目中 C 代码上的重复符号 _fopen_file_func

发布于 2025-01-07 10:21:05 字数 219 浏览 0 评论 0原文

在我的 IOS 项目中,我使用多个静态框架,而不是在她的代码中使用 minizip。

当我编译时,出现重复符号错误。

如果此错误是由于类引起的,则非常简单(重命名类,修复错误)

但就我而言,“minizip”文件(如 ioapi.c、zip.c unzip.c )提供的重复符号是加载到框架中。

在这种情况下怎么可能正常工作呢?

感谢您的帮助。

In my IOS project i'm use multiple statics frameworks than use minizip in her code.

when i compile i have an error for a duplicate symbol.

if this error is due to a class, it's really simple (rename class, repair the error )

But in my case, the duplicate symbole provide from the "minizip" files ( like ioapi.c, zip.c unzip.c ) they are load in the frameworks.

How can it's possible to work correctly in this case ?

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尐籹人 2025-01-14 10:21:06

这是 Objective-C 单一命名空间的缺点。

如果您可以获得任何头文件,请删除或重命名它们。
如果您无法获取它们,则需要获取源代码并重命名/重新构建它们,或使用其他库。

This is the downside of Objective-C's single name-space.

If you can get an any of the header files, remove or rename them.
If you cannot get at them, you'll need to get the sources and rename/rebuid them, or use another library.

小糖芽 2025-01-14 10:21:06

@Pixman:仔细查看您(最近)导入到项目中的文件。

我发现同一文件的两个版本(即,ioapi.cioapi.hmztools.cmztools.hunzip.cunzip.hzip.czip.h >)被整合到项目中(在不同级别) - 因此产生重复的符号。

这些重复的文件已经存在(支持另一个文件解压缩需要),因此我从项目中删除了这些文件的第二个副本,并且重复符号的问题消失了(正如您所期望的)。

查看项目中是否存在重复文件(以及可能的符号)名称的一种方法是查看项目的构建阶段部分下提供的编译源选项。< br>
此视图的附加值是每个文件的路径都是可见的,您可以使用它来确定要删除哪些(重复的)文件。

@Pixman: Look closely at the files you have (most recently) imported into your project.

I found a situation where two versions of the same files (i.e., ioapi.c, ioapi.h, mztools.c, mztools.h, unzip.c, unzip.h, zip.c, zip.h) were integrated into the project (at different levels) - therefore producing duplicate symbols.

These duplicated files already existed (in support of another file decompression need) so I removed the second copy of these files from the project, and the problem with duplicate symbols went away (as you would expect).

One way to see if duplicate file (and likely symbol) names exist in your project is to look at the Compiled Sources option available under the Build Phases portion of the project.
The added value with this view is that the path to each file is visible, and you can use this to figure out which (of the duplicate) files you want to remove.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文