gpt4 book ai didi

linux - 如何在 libwebsocket 编码中包含 libmysql?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:45 28 4
gpt4 key购买 nike

我正在尝试使用 libwebsocket 构建我的 WebSocket 服务器,我需要在我的代码中使用 libmysql。我已经安装了 libmysql 并能够使用它,但我不知道如何使用 cmake 将它包含在 CMakeList.txt 中

我已经将它包含在我的 test-server.h 中

#include <mysql.h>

在我的 CMakeList.txt 中,我添加了这个

INCLUDE_DIRECTORIES(/usr/include/mysql)//this is add to the begining

当我使用“make”来制作文件时,我得到了错误信息

CMakeFiles/test-server.dir/test-server/test-server.c.o: in function main:
test-server.c:(.text.startup+0x41): undefined reference to `mysql_init'
collect2: error: ld returned 1 exit status

这里是CMakeList.txt的原始代码 https://github.com/warmcat/libwebsockets/blob/master/CMakeLists.txt

CMakeList.txt 由 libwebsocket 提供,我尝试使用以下代码对其进行编辑:

INCLUDE_DIRECTORIES(/usr/include/mysql)

Name: libwebsockets
Description: Websockets server and client library
Version: ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACK AGE_VERSION_PATCH}
Libs: -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -ldl -L\${libdir} -lwebsockets
Cflags: -I/usr/include/mysql -DBIG_JOINS=1 -fno-strict-aliasing -g -DNDEBUG -I\${includedir}"

为什么我无法链接库?我应该怎么做才能在我的 libwebsocket 服务器代码中使用 libmysql?我正在使用 ubuntu 14.04 作为操作系统。

最佳答案

我建议您创建自己的 CMakeLists.txt 文件。

它应该处理您自己的代码,因为test-server.c 只是一个示例,可以让您了解如何构建自己的服务器。在我看来,它不打算修改。但是,当然,如果您认为这样做更容易,则由您自己决定。

所以,现在,如果您真的想修改 libwebsockets 附带的示例,并希望保留关联的 CMakeLists.txt 文件,那么您可以修改 create_test_app 宏并修改对 target_link_libraries(除了您已经对包含路径所做的修改之外)。

例如你可以改变:

target_link_libraries(${TEST_NAME} websockets)

通过

target_link_libraries(${TEST_NAME} websockets mysqlclient)

利用 FindMysql.cmake 自动找出正确的包含路径和库位置应该更好。

关于linux - 如何在 libwebsocket 编码中包含 libmysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38760141/

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