如何解决如何更改 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>
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 举报,一经查实,本站将立刻删除。