我在QtCreator中使用项目模板"Libraries/Qt Quick 2 Extension Plugin"创建了一个测试插件作为Qt5/QML共享库.我的开发环境是使用Qt-5.0.0和QtCreator-2.6的linux(详细信息在底部附加).
源文件(在要点上):https://gist.github.com/4467883
源文件是默认生成的,没有任何更改.项目名称为"无标题",uri为"com.mycompany.mycomponents",对象类名为"MyItem"."/ tmp/untitled"中的源文件作为SRCDIR.
并将其构建为输出库文件"libuntitled.so","qmldir"和"/ tmp/untitled-build"中的一些目标文件作为DESTDIR.
$ ls /tmp/untitled-build
Makefile libuntitled.so moc_myitem.cpp
moc_myitem.o moc_untitled_plugin.cpp moc_untitled_plugin.o myitem.o
qmldir untitled_plugin.o
Run Code Online (Sandbox Code Playgroud)
但是,我不能使用 "/tmp/test/test.qml"中的库作为qmlscene命令的测试QML源.
$ mkdir /tmp/test; cd /tmp/test
$ vim test.qml
Run Code Online (Sandbox Code Playgroud)
"test.qml"(在要点上):https://gist.github.com/4474422
$ qmlscene test.qml
Run Code Online (Sandbox Code Playgroud)
它失败了,QML_IMPORT_TRACE日志是:
QQmlImportDatabase::addImportPath: "/usr/lib64/qt5/qml"
QQmlImportDatabase::addImportPath: "/usr/bin"
QQmlImports(file:///tmp/test/test.qml)::addImplicitImport
QQmlImports(file:///tmp/test/test.qml)::addLibraryImport: "QtQuick" 2.0 as ""
QQmlImports(file:///tmp/test/test.qml)::importExtension: loaded "/usr/lib64/qt5/qml/QtQuick.2/qmldir"
QQmlImportDatabase::importPlugin: "QtQuick" from "/usr/lib64/qt5/qml/QtQuick.2/libqtquick2plugin.so"
file:///tmp/test/test.qml:2 module "com.mycompany.mycomponents" is not installed
Run Code Online (Sandbox Code Playgroud)
并尝试"-I"选项: …
我可以手动设置断点,并使用调试器运行,但我无法在 Rust 程序出现紧急情况时设置断点。如何在恐慌时设置断点,就像在 C++ 中设置异常一样?
我正在使用 Rust 1.29.0-nightly、VS Code 1.25.1 和 MSVC 2017 工具链。
debugging breakpoints rust visual-studio-code vscode-debugger
在C++中,它是使用std::enable_shared_from_this和继承的小样本代码.在p此代码,调用一个成员函数FB和FA.它p是相同的对象,但称为fa和fb采用不同的this地址.
为什么要采取不同的地址?
码:
#include <memory>
#include <iostream>
template<class T> using S = std::enable_shared_from_this<T>;
struct A: S<A> { auto fa() const -> void { std::cerr << this << "\n";} };
struct B: S<B>, A { auto fb() const -> void { std::cerr << this << "\n";} };
auto main() -> int
{
auto p = std::make_shared<B>();
p -> fa();
p -> fb();
std::cerr << p << "\n";
}
Run Code Online (Sandbox Code Playgroud)
结果:(经过测试的编译器是Linux Mint 16 KDE上的clang ++ …