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尚未配置。

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

  • 相关阅读:
    MPI学习四-集合通信
    MPI学习三
    MPI学习二
    MPI学习一
    HIP编程
    CUDA实战3
    CUDA实战2
    Excel处理
    2.java中c#中statc 静态调用不同之处、c#的静态构造函数和java中的构造代码块、静态代码块
    1.隐藏继承的成员new / 虚方法(override)/ abstract / 多态 ----- 重写
  • 原文地址:https://www.cnblogs.com/encounter/p/2188494.html
Copyright © 2011-2022 走看看