ODB c++ -未知的数据库模式错误
ODB C++ - Unknown database schema error
在我的Visual Studio
解决方案中,我有两个不同的项目,其中一个作为static library
构建,另一个作为可执行文件构建。ODB
相关的代码,如创建数据库和所有的都在图书馆。我把这个库链接到我的可执行文件上。但是当我调试可执行代码时,我在调用create_schema()
中得到错误"unknown database schema"
。我使用SQLite
作为我的数据库。我做错了什么?
这个问题可能与这里和这里描述的问题有关,并且可以简要总结如下:如果静态库中的符号未直接用于主二进制文件,则C/c++链接器将忽略这些符号。ODB的实现可能会落入这个陷阱,这取决于您如何精确地实例化生成的代码。对于GCC/Clang的解决方案是使用--whole-archive
和MSVC,在Visual Studio 2015 Update 2及以上,/WHOLEARCHIVE
.
查看详细信息:
- ld链接器问题:——whole-archive选项
- 什么是Microsoft Visual Studio相当于GCC的ld选项——whole-archive
相关文章:
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 查询SQLite数据库中的日期
- 为什么在保护模式下继承升级不起作用
- 如何在全屏模式下(在OpenGL中)使背景透明
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 派生类是否可以在抽象工厂设计模式中具有数据成员
- 如何在ArangoDb AQL查询中指定数据库
- 此模式的C++RegEx
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 以只读模式打开数据库时SQLITE_CANTOPEN错误
- 是否可以在 sqlite3 中READ_ONLY数据库切换到 WAL 日记模式
- 数据库访问对象设计模式
- SQLite C++多个进程以只读模式访问数据库时"数据库已锁定"
- 一些数据库持久性设计模式是什么
- 用于处理实例"数据库"的模式
- 如何使用基于现有文件数据库的模式创建内存中数据库
- 是否可以以只读模式连接到内存中的sqlite数据库?
- ODB c++ -未知的数据库模式错误
- 实体-属性-值模式或数据库中的JSON