【问题标题】:How to change include path for Visual Studio Conan?如何更改 Visual Studio Conan 的包含路径?
【发布时间】:2021-07-04 11:12:56
【问题描述】:

我正在尝试创建一个跨平台应用程序 (Linux/Windows),它使用第三方依赖项,例如 jsoncpp。在 Linux 上我使用 cmake,在 Windows 上我使用 Visual Studio + Conan。存在一个问题,即 cpp 标头的路径在不同的操作系统上有所不同。在 Linux 上,我像这样包含 jsoncpp:

#include <jsoncpp/json/config.h>
#include <jsoncpp/json/value.h>

但在 Windows 上我必须使用其他方式:

#include <json/config.h>
#include <json/value.h>

在 Windows 上,柯南一路安装标头(没有 jsoncpp 前缀):

C:\Users\User\.conan\data\jsoncpp\1.9.0\theirix\stable\package\3fb49604f9c2f729b85ba3115852006824e72cab\include\json

conaninfo.txt 文件内容:

[requires]
jsoncpp/1.9.0@theirix/stable
[generators]
MSBuildDeps

有一种方法可以使用包含路径,比如在 Linux 上?没有这么丑陋的代码:

#ifdef __linux__
#include <jsoncpp/json/config.h>
#include <jsoncpp/json/value.h>
#else
#include <json/config.h>
#include <json/value.h>
#endif

【问题讨论】:

    标签: visual-studio cmake conan


    【解决方案1】:

    对于 Linux,将显式包含路径添加到编译器选项以包含 jsoncpp,以便 #include &lt;json/config.h&gt; 也可以在那里工作。

    也就是说,

    target_include_directories(yourprogram PRIVATE /usr/include/jsoncpp)
    

    如果您使用 CMake 为您定位库,请使用 ${JSONCPP_INCLUDE_DIRS} 或类似名称。

    但是为什么不在 Linux 上也使用柯南呢?如果您正在经历 Windows 的痛苦,您可能会从完全使用单一的依赖管理框架中受益。

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 2013-09-18
      • 2011-04-06
      • 2011-02-10
      • 2016-07-07
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多