2

在我的Visual Studio解决方案中,我有两个不同的项目,其中一个构建为 a static library,另一个构建为可执行文件。ODB创建数据库等相关代码都在库中。我将此库链接到我的可执行文件。但是当我调试可执行代码时,我"unknown database schema"在调用中收到错误create_schema()。我正在SQLite用作我的数据库。我究竟做错了什么?

4

1 回答 1

0

此问题可能与此处此处描述的问题有关,可以简要总结如下:如果静态库中的符号未直接用于主二进制文件中,C/C++ 链接器将忽略这些符号。ODB 的实现可能会落入这个陷阱,这取决于您如何准确地实例化生成的代码。对于 GCC/Clang,解决方案是--whole-archive在 Visual Studio 2015 Update 2 及更高版本上使用 MSVC /WHOLEARCHIVE,.

有关更多详细信息,请参阅:

于 2019-09-25T22:31:18.337 回答