Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
cmake文件应该安装在哪里?_Cmake - Fatal编程技术网

cmake文件应该安装在哪里?

cmake文件应该安装在哪里?,cmake,Cmake,cmake文件应该安装在哪里?我目前已经为安装目标设置了 cmake_minimum_required(VERSION 2.8.10) project(projectname) include(CMakePackageConfigHelpers) include(GNUInstallDirs) add_library(projectnameINTERFACE) target_include_directories(projectnameINTERFACE $<INSTAL

cmake文件应该安装在哪里?我目前已经为安装目标设置了

cmake_minimum_required(VERSION 2.8.10)
project(projectname)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)

add_library(projectnameINTERFACE)
target_include_directories(projectnameINTERFACE
        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/projectname>
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
)


configure_package_config_file(projectnameConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/projectnameConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_PREFIX})
install(TARGETS projectnameEXPORT projectname-targets)

install(EXPORT projectname-targets FILE projectnameTargets.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/projectnameConfig.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
install(DIRECTORY ./ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/projectname FILES_MATCHING PATTERN "*.h" PATTERN ".git" EXCLUDE)
cmake_最低要求(版本2.8.10)
项目(项目名称)
包括(CMakePackageConfigHelpers)
包括(GNUInstallDirs)
添加库(projectnameINTERFACE)
目标目录包括目录(projectnameINTERFACE
$
$
)
配置\u包\u配置\u文件(projectnameConfig.cmake.in${cmake\u CURRENT\u BINARY\u DIR}/projectnameConfig.cmake INSTALL\u DESTINATION${cmake\u INSTALL\u PREFIX})
安装(目标projectname导出projectname目标)
安装(导出projectname目标文件projectnameTargets.cmake目标${cmake\u install\u DATAROOTDIR}/cmake)
安装(文件${CMAKE\u CURRENT\u BINARY\u DIR}/projectnameConfig.CMAKE DESTINATION${CMAKE\u install\u DATAROOTDIR}/CMAKE)
安装(目录./DESTINATION${CMAKE\u install\u INCLUDEDIR}/projectname文件\u匹配模式“*.h”模式“.git”排除)
路径
${CMAKE\u INSTALL\u PREFIX}/share/projectname/CMAKE
正确吗

对于Windows版本,应使用
CMAKE\u INSTALL\u PREFIX=C:/libs/project
安装它。使用
CMAKE\u INSTALL\u PREFIX=/usr
/usr/local
在Linux中安装时,我不确定CMAKE文件是否应安装在
/usr/share/CMAKE
或类似文件夹中


最后,它应该以合理的方式使用这两种方法(
/usr
path/to/libdir
)。使用
find_package()
命令查找库时,位置非常重要。根据平台的不同,可能的位置有:

<prefix>/                                                       (Windows)
<prefix>/(cmake|CMake)/                                         (Windows)
<prefix>/<name>*/                                               (Windows)
<prefix>/<name>*/(cmake|CMake)/                                 (Windows)
<prefix>/(lib/<arch>|lib*|share)/cmake/<name>*/                 (Unix)
<prefix>/(lib/<arch>|lib*|share)/<name>*/                       (Unix)
<prefix>/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/         (Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/cmake/<name>*/         (Windows/Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/               (Windows/Unix)
<prefix>/<name>*/(lib/<arch>|lib*|share)/<name>*/(cmake|CMake)/ (Windows/Unix)
<prefix>/<name>.framework/Resources/                            (macOS)
<prefix>/<name>.framework/Resources/CMake/                      (macOS)
<prefix>/<name>.framework/Versions/*/Resources/                 (macOS)
<prefix>/<name>.framework/Versions/*/Resources/CMake/           (macOS)
<prefix>/<name>.app/Contents/Resources/                         (macOS)
<prefix>/<name>.app/Contents/Resources/CMake/                   (macOS)
/(Windows)
/(cmake | cmake)/(Windows)
/*/(窗口)
/*/(cmake | cmake)/(Windows)
/(lib/

  • 我想我会使用
    /share/${PROJECT\u NAME}/cmake
    ,所以在两个平台上都是一样的,使用
    GNUInstallDirs
    cmake文件中的路径是
    ${cmake\u INSTALL\u DATAROOTDIR}/${PROJECT\u NAME}/cmake
    。对lib或share不是100%确定,但在Linux上,我更习惯于共享非二进制文件。我在
    /lib/cmake/${PROJECT\u NAME}
    下的大多数cmake配置都与Qt和KDE库相关,其他所有库总共231个。在
    /share/cmake/${PROJECT\u NAME}
    只有9个。我安装的大多数库在cmake目录中都有
    ${PROJECT\u NAME}
    目录,而不是相反。但正如您从cmake文档中看到的,这取决于您。