Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMake$<;目标文件:tgt>;生成器表达式以及DeployQt5_C++_Qt_Cmake - Fatal编程技术网

C++ CMake$<;目标文件:tgt>;生成器表达式以及DeployQt5

C++ CMake$<;目标文件:tgt>;生成器表达式以及DeployQt5,c++,qt,cmake,C++,Qt,Cmake,我正在尝试在CMake下部署基于Qt的应用程序。我曾经以这种方式使用DeployQt5: if (APPLE) set (QT_QPA_PLUGIN ${QT_INSTALL_PLUGINS}/platforms/libqcocoa.dylib) set (tgt_EXECUTABLE tgt.app) elseif (WIN32 AND MSVC) set (QT_QPA_PLUGIN ${QT_INSTALL_PLUGINS}/platforms/qwindows.dll)

我正在尝试在CMake下部署基于Qt的应用程序。我曾经以这种方式使用DeployQt5:

if (APPLE)
  set (QT_QPA_PLUGIN ${QT_INSTALL_PLUGINS}/platforms/libqcocoa.dylib)
  set (tgt_EXECUTABLE tgt.app)
elseif (WIN32 AND MSVC)
  set (QT_QPA_PLUGIN ${QT_INSTALL_PLUGINS}/platforms/qwindows.dll)
  get_property (tgt_EXECUTABLE TARGET tgt PROPERTY LOCATION)
  get_filename_component (tgt_EXECUTABLE ${tgt_EXECUTABLE} NAME)
endif ()

set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".")
include(InstallRequiredSystemLibraries)

include (DeployQt5)
install_qt5_executable ("${tgt_EXECUTABLE}"
"${QT_QPA_PLUGIN}" # qtplugins
"" # libs
"${QT_INSTALL_LIBS}" # dirs
)

但是我不喜欢它。我想使用cmake的生成器表达式并放弃LOCATION属性。我想知道是否可以使用DeployQt5模块。这似乎不是那么简单:

include (DeployQt5)
install_qt5_executable ("$<TARGET_FILE:tgt>"
    "${QT_QPA_PLUGIN}" # qtplugins
    "" # libs
    "${QT_INSTALL_LIBS}" # dirs
)
include(部署qt5)
安装qt5可执行文件($)
“${QT_QPA_PLUGIN}”#qtplugins
“”libs
“${QT_INSTALL_LIBS}”目录
)
不起作用。是否可以使CMakeLists.txt文件的这一部分更干净