zoukankan      html  css  js  c++  java
  • libxml2:Debug模式可以编译,Distribution下不可以?

    在Project中使用了libxml2,已将 ${SDKROOT}/usr/include/libxml2加入到Header Search Path中,在Debug模式下编译运行OK,但切换到Distribution模式下居然不行?

    错误全是头文件找不到: libxml/tree.h no such file or directory

    共有120个这样的错误。 查了网上的答案,都是说Header Search Path设置的路径不对。

    但我明明设置了呀?

    最后http://stackoverflow.com/questions/1140341/dylib-linked-in-debug-not-found-for-release-for-iphone-in-xcode 提醒了我:

    An error on the .h is a compile-time error with your Header Search Paths, not a .dylib or a linker error. You have to ensure that /usr/include/libxml2 is in your Header Search Paths in your Release configuration.

    Debug中的配置是设置了,但Distribution的配置呢?

    赶紧去Distribution中查看配置,但很不幸,Header Search Path中是设置对的。

    那是哪里的问题呢?突然看到错误报告的数目,才120个,好像有点不对?

    把Header Search Path删除,重新Build,果然,如果不设置Header Search Path的话,编译错误整整有8000多条!

    是什么原因导致了Header Search Path“部分有效”呢?

    一定还有其它配置文件的Header Search Path。

    由于这个Project使用了另外一个静态库(那个静态库也引用了libxml2库),那么静态库的Distribution配置对了吗? 赶紧去静态库Project中查看Distribution配置,果然有问题: Header Search Path未设置,C/C++ Compiler Version未设置为LLVM GCC4.2。

    原来在调试静态库时,只设置了Debug配置,这样凡是引用这个静态库的其他Project,在Debug模式下编译不会有问题,因为静态库的Debug配置是正确的。但如果用其他配置如Release或Distritution进行编译,则会导致前面的问题发生,因为静态库的Release/Distribution尚未配置。

    这个教训很深刻,希望对其他人也有帮助。

  • 相关阅读:
    第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置
    THINKPHP5近期暴露的漏洞
    同事孩子满月酒送诗十二首
    东莞电台送诗
    前两天解决了一个贴吧里面牛年找牛的问题
    群友作诗大会
    老系统维护有感
    家和万事兴 歌词
    傻大个的保健人生遭遇
    东莞电台忽来关心,寥寥数语,余有感言
  • 原文地址:https://www.cnblogs.com/encounter/p/2188494.html
Copyright © 2011-2022 走看看