我在Qt Creator中创建了一个C ++库项目。构建项目后,我有了libMylib.so,.so.1,.so.1.0,.so.1.0.0,Makefile和mylib.o文件。我将库标头添加到其他项目中,并将路径添加到.pro文件中,如下所示:
LIBS += "/home/peter/Workspace/build-Libtester-Desktop-Release/libMyLib.so"
Run Code Online (Sandbox Code Playgroud)
在构建应用程序时,没有出现此类文件错误,但是在运行该应用程序时,出现以下错误:
/home/peter/Workspace/build-Libtester-Desktop-Debug/Libtester: error while loading shared libraries: libMyLib.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我无法理解,因为它就在它似乎找到的.so旁边,因为当路径错误时,在尝试构建项目时出现这样的文件或目录错误。有人可以解释一下我在这里缺少什么吗?
谢谢你的时间。
我有一个存储和编辑笔记的应用程序.笔记列表显示在列表视图中,如下所示:
Page {
id: noteList
title: i18n.tr("QNote")
visible: false
Column {
anchors.fill: parent
ListView {
anchors.fill: parent
model: notes
delegate: ListItem.Standard {
text: Title
onClicked: editNote(NoteText, Title, modelData);
progression: true
}
}
}
}
function editNote(text, title, item) {
pageStack.push(noteEdit, {title: title, text: text});
handler.setActiveItem(item);
}
Run Code Online (Sandbox Code Playgroud)
notes项是一个NoteListModel,它是QAbstractListModel的子类,包含NoteListItems.我想要做的是存储当前选择的NoteListItem,这样当用户想要保存修改后的音符时,我就可以轻松访问里面的Note对象.但是,我不知道如何从qml委托访问后备NoteListItem.modelData似乎是别的东西.有没有办法这样做?如果我可以将Note对象包装在QVariant中,我可以通过角色轻松访问它,但是当我像这样尝试它时
QVariant NoteListItem::data(int role) {
switch (role) {
case Title:
return note.getTitle();
case NoteText:
return note.getText();
case NoteObject:
return QVariant::fromValue(note);
default:
return QVariant();
}
}
Run Code Online (Sandbox Code Playgroud)
它导致编译器错误说
qmetatype.h:642:错误:'sizeof'无效应用于不完整类型'QStaticAssertFailure'
或者我应该尝试从支持代码访问选定的列表项?那有什么办法吗?你有什么想法吗?
谢谢你的时间.问候,彼得
下面的代码虽然我认为应该返回一个值,但返回一个数组.
function Do-Something {
123
return 456
}
(Do-Something).GetType() # will say Object[]
Run Code Online (Sandbox Code Playgroud)
我了解到,如果我想避免这种情况,我必须像这样将不需要的值传递给Out-Null
function Do-Something {
123 | Out-Null
return 456
}
Run Code Online (Sandbox Code Playgroud)
但是,我找不到为什么PowerShell以这种方式实现的原因.我发现如果你忘记某些东西有一个你没有捕获的返回值,这会导致讨厌的和无声的错误.有人可以解释什么时候这可以派上用场吗?还有可能强制powershell不收集数组中所有未捕获的变量吗?
我正在Qt中开发一个基本应用程序,它使用REST API从Parse.com检索数据.我浏览了一些类引用和cURL手册,但是仍然不清楚如何设置请求参数.例如,我想验证用户身份.这是Parse提供的卷曲示例:
curl -X GET \
-H "X-Parse-Application-Id: myappid" \
-H "X-Parse-REST-API-Key: myapikey" \
-G \
--data-urlencode 'username=test' \
--data-urlencode 'password=test' \
https://api.parse.com/1/login
Run Code Online (Sandbox Code Playgroud)
我像这样设置网址和标题
QUrl url("https://api.parse.com/1/login");
QNetworkRequest request(url);
request.setRawHeader("X-Parse-Application-Id", "myappid");
request.setRawHeader("X-Parse-REST-API-Key", "myapikey");
nam->get(request);
Run Code Online (Sandbox Code Playgroud)
当没有参数时哪个工作正常,但是我应该使用什么来实现与curl相同的--data-urlencode开关?
谢谢你的时间
我有一个C#模块接收和处理Operation类的各种实例.接口声明了一个方法:
Operation Transform(Operation o1, Operation o2);
Run Code Online (Sandbox Code Playgroud)
但是有几种操作.例如,对于简单的文本编辑,有InsertOperation和DeleteOperation,因此Transform方法的主体首先排序它接收的操作类型并将其转换.在学习了一些F#后,我想在其中重写项目的这一部分(作为练习和实验)并且认为我可以通过这样的模式匹配来更好地处理这个:
let Transform (oa: Operation) (ob: Operation) =
match oa, ob with
| InsertOperation o1, InsertOperation o2 -> //transformation
| DeleteOperation o1, InsertOperation o2 -> //transformation
| InsertOperation o1, DeleteOperation o2 -> //transformation
| DeleteOperation o1, DeleteOperation o2 -> //transformation
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误消息:
The pattern discriminator 'InsertOperation' is not defined
Run Code Online (Sandbox Code Playgroud)
Operation类及其后代是用C#编写的,但我认为这不应该成为问题.有人可以解释为什么这是一个问题,我怎么能解决这个问题?
尝试在eclipse中调试本地java应用程序时出现以下错误.
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
Run Code Online (Sandbox Code Playgroud)
我读到它可能是由于某个eclipse想要用于调试的端口使用相同的端口引起的,但我如何确定端口号.我在错误日志或首选项中找不到任何内容.
有任何想法吗?