Sqlite3通过vala cmake系统构建
我一直试图通过cmake构建系统编译一个vala应用程序,但在尝试链接sqlite3包时遇到了问题。当我跑步时,让我得到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
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})
(“…
”代表其余的依赖项)
这里有一个更完整的例子:@船长如果这个答案足够,你可能会接受它。