首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows 10上mysqlconnector的位置在哪里?

在Windows 10上mysqlconnector的位置在哪里?
EN

Stack Overflow用户
提问于 2020-08-28 01:35:05
回答 1查看 286关注 0票数 0

我想继续在Windows上开发我的项目。我在Linux上使用以下CMakeLists.txt进行开发,以找到我的mysql连接器:

代码语言:javascript
运行
复制
IF (MYSQL_INCLUDE_DIR)
  # Already in cache, be silent
  SET(MYSQL_FIND_QUIETLY TRUE)
ENDIF (MYSQL_INCLUDE_DIR)

FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
        /usr/local/include/mysql
        /usr/include/mysql
        )

SET(MYSQL_NAMES mysqlclient mysqlclient_r)
FIND_LIBRARY(MYSQL_LIBRARY
        NAMES ${MYSQL_NAMES}
        PATHS /usr/lib /usr/local/lib
        PATH_SUFFIXES mysql
        )

IF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
  SET(MYSQL_FOUND TRUE)
  SET( MYSQL_LIBRARIES ${MYSQL_LIBRARY} )
ELSE (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
  SET(MYSQL_FOUND FALSE)
  SET( MYSQL_LIBRARIES )
ENDIF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)

IF (MYSQL_FOUND)
  IF (NOT MYSQL_FIND_QUIETLY)
    MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARY}")
  ENDIF (NOT MYSQL_FIND_QUIETLY)
ELSE (MYSQL_FOUND)
  IF (MYSQL_FIND_REQUIRED)
    MESSAGE(STATUS "Looked for MySQL libraries named ${MYSQL_NAMES}.")
    MESSAGE(FATAL_ERROR "Could NOT find MySQL library")
  ENDIF (MYSQL_FIND_REQUIRED)
ENDIF (MYSQL_FOUND)

MARK_AS_ADVANCED(
        MYSQL_LIBRARY
        MYSQL_INCLUDE_DIR
)

我已经安装了:https://dev.mysql.com/downloads/windows/installer/8.0.html

你能建议我需要对我的CMakeLists.txt进行什么样的更改才能在Windows上找到连接器吗?目前,我收到以下错误:

代码语言:javascript
运行
复制
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
MYSQL_INCLUDE_DIR (ADVANCED)
EN

回答 1

Stack Overflow用户

发布于 2020-08-28 02:00:59

在您链接的同一站点上,Windows installation layout页面描述了您的MySQL安装可能位于的位置:

对于Windows8.0,对于使用MySQL Installer执行的安装,默认安装目录为C:\Program Files\MySQL\MySQL Server 8.0。如果您使用ZIP存档方法安装MySQL,您可能更喜欢在C:\mysql中安装。但是,子目录的布局保持不变。

您可以调整CMake代码以在Windows上搜索一组不同的硬编码路径:

代码语言:javascript
运行
复制
IF (MYSQL_INCLUDE_DIR)
  # Already in cache, be silent
  SET(MYSQL_FIND_QUIETLY TRUE)
ENDIF (MYSQL_INCLUDE_DIR)

# Check if this is Windows.
if(WIN32)
    FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
            "C:/Program Files/MySQL/MySQL Server 8.0/mysql"
            )
    
    SET(MYSQL_NAMES mysqlclient mysqlclient_r)
    FIND_LIBRARY(MYSQL_LIBRARY
            NAMES ${MYSQL_NAMES}
            PATHS "C:/Program Files/MySQL/MySQL Server 8.0/lib"
            PATH_SUFFIXES mysql
            )
else()
    FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
            /usr/local/include/mysql
            /usr/include/mysql
            )
    
    SET(MYSQL_NAMES mysqlclient mysqlclient_r)
    FIND_LIBRARY(MYSQL_LIBRARY
            NAMES ${MYSQL_NAMES}
            PATHS /usr/lib /usr/local/lib
            PATH_SUFFIXES mysql
            )
endif()

...

当然,您可能需要修改代码中的路径以匹配您的特定安装位置。

此外,如果多人将在不同的机器上使用此存储库,最好将这些硬编码路径移动到CMake缓存变量。这样,在配置CMake以适应其特定的MySQL安装位置时,每个人都可以修改缓存变量,而不是修改CMake代码本身中的硬编码值。

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

https://stackoverflow.com/questions/63621398

复制
相关文章

相似问题

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