微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何更改 Visual Studio Conan 的包含路径?

如何解决如何更改 Visual Studio Conan 的包含路径?

我正在尝试创建一个跨平台应用程序 (Linux/Windows),它使用第三方依赖项,例如 from PyQt5 import QtCore,QtGui,QtWidgets,uic from PyQt5.QtWidgets import QPushButton,QLineEdit import sys import pyMysqL pyMysqL.install_as_MysqLdb() class MyWindow(QtWidgets.QMainWindow): def __init__(self,maxWidth=None): super(MyWindow,self).__init__() uic.loadUi('MainWindow.ui',self) self.eyepass_show() self.eyepass_hide() self.btn_show_pwd.clicked.connect(self.toggleVisibility) def toggleVisibility(self): if self.line_password.echoMode()==QLineEdit.normal: self.line_password.setEchoMode(QLineEdit.Password) else: self.line_password.setEchoMode(QLineEdit.normal) # self.btn_show_pwd.clicked.connect(self.eyepass_hide) # self.btn_show_pwd.clicked.connect(self.eyepass_show) # # def eyepass_show(self): # self.line_password.setEchoMode(QLineEdit.normal) # print('show pass') # # def eyepass_hide(self): # self.line_password.setEchoMode(QLineEdit.Password) # print('hide pass') if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) 。在 Linux 上我使用 jsoncpp,在 Windows 上我使用 cmake + Visual Studio。存在一个问题,即不同操作系统上 cpp 标头的路径不同。在 Linux 上,我像这样包含 jsoncpp:

Conan

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

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

在 Windows 上,Conan 会一路安装头文件(没有 jsoncpp 前缀):

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

conaninfo.txt 文件内容

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

有一种方法可以使用包含路径,就像在 Linux 上一样?没有这么难看的代码

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

解决方法

对于 Linux,向编译器选项添加显式包含路径以包含 jsoncpp,以便 #include <json/config.h> 也可以在那里工作。

也就是说,

target_include_directories(yourprogram PRIVATE /usr/include/jsoncpp)

如果您已使用 CMake 为您定位库,请改用 ${JSONCPP_INCLUDE_DIRS} 或类似工具。

但为什么不在 Linux 上使用 Conan 呢?如果您正在经历 Windows 的痛苦,那么您可能会受益于整个使用单个依赖项管理框架。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。