CMake-此项目中使用了以下变量,但是将它们设置为NOTFOUND

如何解决CMake-此项目中使用了以下变量,但是将它们设置为NOTFOUND

我正在Linux Ubuntu上使用CMake。

这是我的项目结构。

  • cmake
  • 来源
    • 普通
    • 核心
      • AuthServer
      • WorldServer

在根CMakeLists.txt中,我有:

cmake_minimum_required(VERSION 3.16)
project(Vibranium_Core)

set(CMAKE_CXX_STANDARD 14)

find_package(Boost 1.72.0)

if(NOT Boost_FOUND)
    message(FATAL_ERROR "Could not find boost!")
endif()
include_directories(${Boost_INCLUDE_DIR})

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
find_package(MySQL REQUIRED)

include_directories(${MYSQL_INCLUDE_DIR})

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Common)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/WorldServer)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/Source/Core/AuthServer)

set_target_properties(
        Common WorldServer AuthServer
        PROPERTIES
        ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
        RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)

Source/Core/AuthServer/CMakeLists.txt中,我有:

if(WIN32)
    if(MSVC)
        list(APPEND PRIVATE_SOURCES AuthServer.rc)
    endif()
endif()

add_executable(AuthServer AuthServer.cpp ${PRIVATE_SOURCES})
target_link_libraries(AuthServer LINK_PUBLIC Common)


if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/configs/)
    message(STATUS "Configs folder will be created: ${CMAKE_BINARY_DIR}/bin/configs")
    file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/configs/)
endif()

if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/configs/AuthServer.conf)
message(STATUS "New AuthServer Config file in will be installed in: ${CMAKE_BINARY_DIR}/bin/configs")
add_custom_command(
        TARGET AuthServer POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy
        ${CMAKE_CURRENT_SOURCE_DIR}/AuthServer.conf.dist
        ${CMAKE_BINARY_DIR}/bin/configs/)
endif()

Source/Core/WorldServer/CMakeLists.txt中,我有:

if(WIN32)
    if(MSVC)
        list(APPEND PRIVATE_SOURCES WorldServer.rc)
    endif()
endif()

add_executable(WorldServer WorldServer.cpp ${PRIVATE_SOURCES})
target_link_libraries(WorldServer LINK_PUBLIC Common)

if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/configs/)
    message(STATUS "Configs folder will be created: ${CMAKE_BINARY_DIR}/bin/configs")
    file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/configs/)
endif()

if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/configs/WorldServer.conf)
message(STATUS "New WorldServer Config file in will be installed in: ${CMAKE_BINARY_DIR}/bin/configs")
add_custom_command(
TARGET WorldServer POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/WorldServer.conf.dist
${CMAKE_BINARY_DIR}/bin/configs/)
endif()

cmake/FindMySQL.cmake中,我有:

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
)

当我尝试重新加载Cmake配置时,出现此错误:

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)
   used as include directory in directory /home/venelin/Vibranium-Core
   used as include directory in directory /home/venelin/Vibranium-Core
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Common
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Common
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Common
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/WorldServer
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/WorldServer
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/WorldServer
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/AuthServer
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/AuthServer
   used as include directory in directory /home/venelin/Vibranium-Core/Source/Core/AuthServer

CMake Error in Source/Common/CMakeLists.txt:
  Found relative path while evaluating include directories of "Common":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Common/CMakeLists.txt:
  Found relative path while evaluating include directories of "Common":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/WorldServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "WorldServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/WorldServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "WorldServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/AuthServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "AuthServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/AuthServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "AuthServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Common/CMakeLists.txt:
  Found relative path while evaluating include directories of "Common":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Common/CMakeLists.txt:
  Found relative path while evaluating include directories of "Common":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/WorldServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "WorldServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/WorldServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "WorldServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/AuthServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "AuthServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"



CMake Error in Source/Core/AuthServer/CMakeLists.txt:
  Found relative path while evaluating include directories of "AuthServer":

    "MYSQL_INCLUDE_DIR-NOTFOUND"

为什么会收到此错误,我该如何解决?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-