两个项目使用相同库的源两次

时间:2015-06-18 13:28:25

标签: c++ c++11 namespaces dependency-management pugixml

我有一个库Lib和一个具有以下文件层次结构的可执行文件App

Lib/
  - external/
       - pugixml/
            - pugixml.hpp -> namespace ``pugi`` and header guard ``LIBA_PUGIXML_HPP``
            - pugixml.cpp 
App/
  - external/
       - pugixml/
            - pugixml.hpp  ->  namespace ``pugi`` and header guard ``APP_PUGIXML_HPP``
            - pugixml.cpp 

AppLib都使用外部库pugixml(可能是不同的版本)。它们直接包含在项目中的文件,而pugixml基本上不再是外部依赖。

App取决于Lib,并包含来自Lib的所有必要来源(它不与Lib相关联)以成功编译自己。

如何避免在编译App时出现的pugixml.hpp库的命名空间冲突。如何在此设置中使用同一库的两个不同版本?

我看到以下选项:

  • pugixml中的名称空间A移至namespace A{ namespace pugixml {...} }app中的名称空间pugixml移至app中的名称空间namespace app{ namespace pugixml {...} } setInterval(function() { myFunction(); }, 100); function myFunction() { //Your code }

  • 重命名所有名称空间?我该怎么做?硬编码?或者是否有c ++语法?

什么是好方法?

0 个答案:

没有答案