问题标签 [wt-dbo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ORM 事务提交上的 Wt Segfault
http://www.webtoolkit.eu/wt/doc/tutorial/dbo.html说
本教程中使用的示例的完整源代码可作为可运行的程序在
examples/feature/dbo/
Wt 文件夹中获得。
我试图tutorial1.C
从该目录运行,我得到以下输出:
供您参考,这是我的代码:http ://sprunge.us/PYSO (我希望能持续一段时间,但如果它停止工作,请告诉我)。还有我的 Makefile:http ://sprunge.us/UCge我运行 gdb 使用$ gdb --args ./flashcard --docroot . --http-address 0.0.0.0 --http-port 9090
您可以看到第 80 行的输出,但看不到第 83 行的输出,并且 gdb 的回溯表明第 81 行(提交)是问题所在。如果我删除第 81 行以使事务由于超出范围而提交,则存在相同的问题,但它来自事务的析构函数。
我正在使用 Wt 3.3.4-4、gcc 5.1.0-5 运行 archlinux,并使用-std=c++0x
.
我唯一能想象的是,如果与 std::vector 存在一些二进制不兼容?
c++ - Wt::Dbo 中的循环依赖
Wt 建议使用前向声明来避免循环依赖。
但是,当我Settings
在另一个 cpp 文件中使用此类时,程序无法编译:
错误:C2079:“虚拟”使用未定义的类“用户”
可能的解决方案(我不喜欢)
一个解决方案是包含
User.h
在每个包含 的 cpp 文件中Settings.h
,即:我不喜欢这种解决方案,因为我必须记住
User.h
每次包含Settings.h
.另一种解决方案是使用不推荐的
DBO_EXTERN_TEMPLATES
宏,即我不喜欢这个解决方案,因为这个宏不推荐,也没有记录。
DBO_EXTERN_TEMPLATES
不适用于所有编译器。
问题
一种。克服Wt::Dbo
对象之间的循环依赖关系避免上述undefined class
错误的最佳/首选方法是什么?
湾。为什么解决方案 1. 有效?
我创建了一个新的(一般 - 非Wt::Dbo
特定)问题(使用 MCVE),以澄清具体情况:模板类的成员函数何时实例化?
参考
- DBO_EXTERN_TEMPLATES:https ://www.mail-archive.com/witty-interest@lists.sourceforge.net/msg06963.html
- Wt::Dbo 和循环依赖:https ://redmine.webtoolkit.eu/boards/2/topics/290?r=292
- 给定的示例基于
Wt::Dbo
教程:https ://www.webtoolkit.eu/wt/doc/tutorial/dbo.html#_em_one_to_one_em_relations ,但我想将不同的类放入不同的头文件中。
c++ - 你如何使用 Dbo::QueryModel?
我正在尝试在Wt中开发一个应用程序,即使用 Dbo 模块和在 aQueryModel
中显示的 a WTableView
。
然而,当我尝试这样做时,
理论上(我在网上某处发现了类似的片段)这很好,但我的编译器不同意:
对我来说,这个错误看起来和阁楼希腊语差不多,有人能告诉我发生了什么吗?不幸的是,没有 Dbo::QueryModel 的文档。
此外,Wt 工具包是否太旧而无法使用、无法维护?我现在应该放弃使用它吗?
编辑:我尝试了所有类型的 std::make_shared(model) 铸造,这似乎是有意义的,但后来我得到了更多的阁楼希腊语: