think_ma 2014-07-09 02:31 采纳率: 0%
浏览 3136

ld: symbol(s) not found for architecture i386 怎么解决

我在拖入第三方库文件的时候,运行后出现这个错误,
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
其中有一个文件是 .a 文件 ,是不是这个文件有问题 ,
网上说是路径问题我也改过了 还是不行,有谁遇到过类似的问题,

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-02 06:28
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题通常是因为你的项目依赖的库在目标架构(i386)下无法找到。这可能是由于几个原因导致的:

    1. 库版本不兼容:如果你使用的是旧版的库,或者库版本没有按照预期更新,那么它可能不会在新的架构下工作。
    2. 导致错误的库路径:如果你的库位于一个你不应该将其作为源代码的一部分的位置,那么你可能会遇到此问题。
    3. 未正确设置ARCHFLAGS或CXXFLAGS:如果你在构建过程中没有正确地设置ARCHFLAGS或CXXFLAGS,那么你可能无法得到正确的链接。

    你可以尝试以下步骤来解决问题:

    1. 检查并确认你需要的库是否支持当前的架构和编译器版本。
    2. 检查库的版本,并确保它们与你的项目需求匹配。
    3. 确保库的路径是在你的项目中可访问的。
    4. 如果以上都检查无误,请尝试使用不同的库替代品。

    例如,你可以尝试将你的库替换为其他支持i386架构的库,或者考虑使用静态链接的方法,这样可以在编译时就确定所需的库版本。

    请注意,具体的解决方案取决于你具体的情况和使用的库。我建议你在尝试了上述所有方法之后,再寻求更详细的帮助。

    评论

报告相同问题?