标签: c++ database schema odb codesynthesis
在我的Visual Studio解决方案中,我有两个不同的项目,其中一个构建为static library,另一个构建为可执行文件。 ODB相关代码(如创建数据库)都在库中。我将此库链接到我的可执行文件。但是当我调试可执行代码时,我在调用"unknown database schema"中收到错误create_schema()。我使用SQLite作为我的数据库。我做错了什么?
Visual Studio
static library
ODB
"unknown database schema"
create_schema()
SQLite
答案 0 :(得分:0)
此问题很可能与here和here中描述的问题有关,可以概括如下:C / C ++链接器将忽略静态库中的符号,如果这些符号不是直接在主二进制文件中使用。 ODB的实现可能会陷入此陷阱,具体取决于您实例化生成的代码的精确程度。对于GCC / Clang,解决方案是使用--whole-archive;对于MSVC,在Visual Studio 2015 Update 2及更高版本上, /WHOLEARCHIVE。
--whole-archive
/WHOLEARCHIVE
有关更多详细信息,请参见: