1

我是 cmake 的新手,我需要帮助才能在 Windows 上构建 ympd https://github.com/notandy/ympd项目

1.安装libmpdclient

我从https://www.musicpd.org/libs/libmpdclient/安装了 libmpdclient-2.13 库

我做了从 github repo 构建 libmpdclient 的步骤

https://github.com/MusicPlayerDaemon/libmpdclient

这很好用,并通过 .dll 文件得到以下输出:

在此处输入图像描述

2.构建ympd项目

我创建了一个文件夹 /build 并在这个文件夹中我做了

cmake ..

我收到了这个错误:

C:\mpd\ympd\build>cmake ..
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.15063.0 to target Windows 10.0.16299.
-- The C compiler identification is MSVC 19.11.25508.2
-- The CXX compiler identification is MSVC 19.11.25508.2
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.11.25503/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PkgConfig: C:/MinGW/bin/pkg-config.exe (found version "0.26")
CMake Error at G:/Programme/CMake/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find LibMPDClient (missing: LIBMPDCLIENT_LIBRARY
  LIBMPDCLIENT_INCLUDE_DIR)
Call Stack (most recent call first):
  G:/Programme/CMake/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/FindLibMPDClient.cmake:27 (find_package_handle_standard_args)
  CMakeLists.txt:20 (find_package)


-- Configuring incomplete, errors occurred!
See also "C:/mpd/ympd/build/CMakeFiles/CMakeOutput.log".

问题:

如何给 cmake 参数 LIBMPDCLIENT_LIBRARY LIBMPDCLIENT_INCLUDE_DIR?

项目结构:

mpd/ympd/
      build/
      cmake/
          FindLibMPDClient.cmake
      contrib/
      htdocs/
      libmpdclient-2.13/
                   .output/
                        libmpdclient-2.dll 
      src/
      tools/
      .travis
      CMakeLlists
      LICENSE
      README
      ympd.1

文件 FindLibMPDClient.cmake:

# - Try to find LibMPDClient
# Once done, this will define
#
#   LIBMPDCLIENT_FOUND - System has LibMPDClient
#   LIBMPDCLIENT_INCLUDE_DIRS - The LibMPDClient include directories
#   LIBMPDCLIENT_LIBRARIES - The libraries needed to use LibMPDClient
#   LIBMPDCLIENT_DEFINITIONS - Compiler switches required for using LibMPDClient

find_package(PkgConfig)
pkg_check_modules(PC_LIBMPDCLIENT QUIET libmpdclient)
set(LIBMPDCLIENT_DEFINITIONS ${PC_LIBMPDCLIENT_CFLAGS_OTHER})

find_path(LIBMPDCLIENT_INCLUDE_DIR
    NAMES mpd/player.h
    HINTS ${PC_LIBMPDCLIENT_INCLUDEDIR} ${PC_LIBMPDCLIENT_INCLUDE_DIRS}
)

find_library(LIBMPDCLIENT_LIBRARY
    NAMES mpdclient
    HINTS ${PC_LIBMPDCLIENT_LIBDIR} ${PC_LIBMPDCLIENT_LIBRARY_DIRS}
)

set(LIBMPDCLIENT_LIBRARIES ${LIBMPDCLIENT_LIBRARY})
set(LIBMPDCLIENT_INCLUDE_DIRS ${LIBMPDCLIENT_INCLUDE_DIR})

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LibMPDClient DEFAULT_MSG
    LIBMPDCLIENT_LIBRARY LIBMPDCLIENT_INCLUDE_DIR
)

mark_as_advanced(LIBMPDCLIENT_LIBRARY LIBMPDCLIENT_INCLUDE_DIR)

每个帮助都是适当的,谢谢

4

0 回答 0