QtAV msys2软件包:cmake表示libQtAV.dll.a“文件不存在”,但确实存在

时间:2018-11-08 15:12:05

标签: cmake mingw msys2 qtav

我正在尝试安装QtAV并将其与MSYS2上的项目链接。我已经将QtAV软件包成功安装到我的msys2环境中。但是,当我将find_package(QtAV)添加到我的CMakeLists.txt中时,它将引发有关不存在的静态链接文件之一的错误。但是当我看时,它肯定确实存在!

我想念它不起作用吗?

错误:

$ mingw32-make.exe
-- Boost version: 1.68.0
-- Found the following Boost libraries:
--   system
--   log
--   date_time
--   log_setup
--   filesystem
--   thread
--   regex
--   chrono
--   atomic
CMake Error at C:/msys32/mingw32/lib/cmake/QtAV/QtAV-config.cmake:68 (message):
  The imported target "QtAV" references the file

     "/mingw32/lib/libQtAV.dll.a"

  but this file does not exist.  Possible reasons include:

  * The file was deleted, renamed, or moved to another location.

  * An install or uninstall procedure did not complete successfully.

  * The installation package was faulty and contained

     "C:/msys32/mingw32/lib/cmake/QtAV/QtAV-config.cmake"

  but not all the files it references.

但是您可以看到文件确实存在:

$ ls -l "/mingw32/lib/libQtAV.dll.a"
-rw-r--r-- 1 michael None 1486500 Nov  7 15:52 /mingw32/lib/libQtAV.dll.a

C:/msys32/mingw32/lib/cmake/QtAV/QtAV-config.cmake

# Generated by CMake

if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
   message(FATAL_ERROR "CMake >= 2.6.0 required")
endif()
cmake_policy(PUSH)
cmake_policy(VERSION 2.6)
#----------------------------------------------------------------
# Generated CMake target import file.
#----------------------------------------------------------------

# Commands may need to know the format version.
set(CMAKE_IMPORT_FILE_VERSION 1)

# Protect against multiple inclusion, which would fail when already imported targets are added once more.
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
foreach(_expectedTarget QtAV)
  list(APPEND _expectedTargets ${_expectedTarget})
  if(NOT TARGET ${_expectedTarget})
    list(APPEND _targetsNotDefined ${_expectedTarget})
  endif()
  if(TARGET ${_expectedTarget})
    list(APPEND _targetsDefined ${_expectedTarget})
  endif()
endforeach()
if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
  unset(_targetsDefined)
  unset(_targetsNotDefined)
  unset(_expectedTargets)
  set(CMAKE_IMPORT_FILE_VERSION)
  cmake_policy(POP)
  return()
endif()
if(NOT "${_targetsDefined}" STREQUAL "")
  message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
endif()
unset(_targetsDefined)
unset(_targetsNotDefined)
unset(_expectedTargets)


# The installation prefix configured by this project.
set(_IMPORT_PREFIX "/mingw32")

# Create imported target QtAV
add_library(QtAV SHARED IMPORTED)

set_target_properties(QtAV PROPERTIES
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include;${_IMPORT_PREFIX}/include/QtAV"
)

# Load information for each installed configuration.
get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
file(GLOB CONFIG_FILES "${_DIR}/QtAV-config-*.cmake")
foreach(f ${CONFIG_FILES})
  include(${f})
endforeach()

# Cleanup temporary variables.
set(_IMPORT_PREFIX)

# Loop over all imported files and verify that they actually exist
foreach(target ${_IMPORT_CHECK_TARGETS} )
  foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
    if(NOT EXISTS "${file}" )
      message(FATAL_ERROR "The imported target \"${target}\" references the file
   \"${file}\"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   \"${CMAKE_CURRENT_LIST_FILE}\"
but not all the files it references.
")
    endif()
  endforeach()
  unset(_IMPORT_CHECK_FILES_FOR_${target})
endforeach()
unset(_IMPORT_CHECK_TARGETS)

# This file does not depend on other imported targets which have
# been exported from the same project but in a separate export set.

# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
cmake_policy(POP)

我使用以下方法生成了此程序包

git clone https://github.com/wang-bin/QtAV.git
cd QtAV/msys2
makepkg-mingw -sCLf
pacman -U mingw-w64-i686-qtav-r3509.7ddf6db2-1-any.pkg.tar.xz

0 个答案:

没有答案