gpt4 book ai didi

sqlite - 将SQLite与biicode一起使用

转载 作者:行者123 更新时间:2023-12-03 18:50:11 26 4
gpt4 key购买 nike

到目前为止,我已经能够使用biicode成功使用boost,grain和gtest,但是我在使用sqlite时遇到了麻烦。我正在尝试使用它执行以下操作:

#include <sqlite3.h>


因此,我编辑了biicode.conf以包含这些行,包括标题的别名:

[requirements]
sqlite/sqlite:9
[includes]
sqlite.h: sqlite/sqlite/sqlite3/sqlite3.h


但是当我尝试调用bii cpp:build时,它会执行以下操作

WARN: Removing unused reference to "sqlite/sqlite: 9" from myuser/test "requirements"


然后我得到了预期的结果:

database_impl.cpp:(.text+0x516): undefined reference to `sqlite3_exec'


出乎意料的是,即使sqlite3.h显然没有包括在内,编译也成功完成了,但这也许是因为对sqlite的调用来自模板函数。

我看过 example,但是CMakeList.txt似乎没有添加任何其他包含目录。例如,对于boost,我必须添加:

SET(Boost_USE_STATIC_LIBS OFF)
bii_find_boost(COMPONENTS chrono system filesystem log thread REQUIRED)

target_include_directories(${BII_BLOCK_TARGET} INTERFACE ${Boost_INCLUDE_DIRS})
target_link_libraries(${BII_BLOCK_TARGET} INTERFACE ${Boost_LIBRARIES})


但是我发现的两个示例 herehere似乎都没有向包含目录添加任何内容,甚至没有向链接文件夹添加任何内容。我认为sqlite必须与您的源一起编译,那么如何使biicode自动将这些文件添加到我的项目中?

最佳答案

有几个问题。您只是在[includes]部分的sqlite.h中而不是在sqlite3.h中编写,并且以后应该只写前缀sqlite/sqlite/sqlite3,而不是完整的依赖项名称。

然后,您可以解决此问题:

[requirements]
sqlite/sqlite: 9
[includes]
sqlite3.h: sqlite/sqlite/sqlite3


或者,您可以尝试将SQLite版本上传到 fenix用户:

[requirements]
fenix/sqlite: 0
[includes]
sqlite3.h: fenix/sqlite


不用担心“ WARN”消息说biicode会忽略sqlite3.c文件,因为它被编码到CMakeLists.txt块中以捕获该文件;)

注意:您应该用双引号而不是 #includes来写外部 <>,因为最后一个引用到系统头,并且biicode可能使用某些系统deps,但您没有意识到。

关于sqlite - 将SQLite与biicode一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com