Sqlite3通过vala cmake系统构建

Sqlite3通过vala cmake系统构建,c,sqlite,cmake,vala,C,Sqlite,Cmake,Vala,我一直试图通过cmake构建系统编译一个vala应用程序,但在尝试链接sqlite3包时遇到了问题。当我跑步时,让我得到 CMakeFiles/app.dir/Database/Database.c.o: In function `template_database_construct_from_file': Database.c:(.text+0x8a): undefined reference to `sqlite3_open' Database.c:(.text+0xaa): undefi

我一直试图通过cmake构建系统编译一个vala应用程序,但在尝试链接sqlite3包时遇到了问题。当我跑步时,让我得到

CMakeFiles/app.dir/Database/Database.c.o: In function `template_database_construct_from_file':
Database.c:(.text+0x8a): undefined reference to `sqlite3_open'
Database.c:(.text+0xaa): undefined reference to `sqlite3_close'
Database.c:(.text+0x116): undefined reference to `sqlite3_errcode'
Database.c:(.text+0x131): undefined reference to `sqlite3_errmsg'
还有一堆几乎相同的错误。我可以通过使用
--pkg sqlite3
通过命令行编译代码来测试代码,并且它编译时没有任何问题。那么,为什么在尝试从cmake编译时它不能正常工作呢


非常感谢您的帮助。谢谢大家!

您需要将
pkg config--libs sqlite3
的结果添加到
LDFLAGS
或其他内容中。虽然我不使用CMake,但我认为这是模板的问题。我在使用自动工具时遇到了同样的问题。

我需要查看您的CMakeLists.txt以更好地了解您的问题

不过,要将库链接到CMake vala构建,请执行以下操作:

find_package(PkgConfig)
pkg_check_modules(SQLITE3 REQUIRED sqlite3)
set(CFLAGS
    ${SQLITE3_CFLAGS} ${SQLITE3_CFLAGS_OTHER}
    ... )
add_definitions(${CFLAGS})

set(LIBS
    ${SQLITE3_LIBRARIES}
    ... )    
link_libraries(${LIBS})

set(LIB_PATHS
    ${SQLITE3_LIBRARY_DIRS}
    ... )
link_directories(${LIB_PATHS})
(“
”代表其余的依赖项)


这里有一个更完整的例子:

@船长如果这个答案足够,你可能会接受它。