首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在libwebsocket编码中包含libmysql?

如何在libwebsocket编码中包含libmysql?
EN

Stack Overflow用户
提问于 2016-08-04 14:40:10
回答 1查看 178关注 0票数 0

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

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

代码语言:javascript
复制
#include <mysql.h>

在我的CMakeList.txt中,我添加了以下内容

代码语言:javascript
复制
INCLUDE_DIRECTORIES(/usr/include/mysql)//this is add to the begining

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

代码语言:javascript
复制
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提供的,我试着用下面的代码来编辑它:

代码语言:javascript
复制
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作为操作系统。

EN

回答 1

Stack Overflow用户

发布于 2016-10-01 19:01:22

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

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

因此,现在,如果您确实希望修改libwebsocket附带的示例,并希望保留相关的CMakeLists.txt文件,那么您可以修改create_test_app宏并修改对target_link_libraries的调用(除了您已经对包含路径所做的修改之外)。

例如,您可以更改:

代码语言:javascript
复制
target_link_libraries(${TEST_NAME} websockets)

通过

代码语言:javascript
复制
target_link_libraries(${TEST_NAME} websockets mysqlclient)

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38760141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档