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调用是: cmake /p/a/t/h -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib 我在找-DCMAKE\u INSTALL\u INCDIR或-DCMAKE\u INCLUDE\u DIR或-DCMAKE\u INCLUDE\u HEADERDIR之类的东西。 (例如,我正在尝试使用autoco

我正在安装一个用CMake构建的软件包。它在非标准位置安装头文件。是否有一个变量可以在安装时用于更改该路径

当前的CMake调用是:

cmake /p/a/t/h -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=/usr/lib
我在找
-DCMAKE\u INSTALL\u INCDIR
-DCMAKE\u INCLUDE\u DIR
-DCMAKE\u INCLUDE\u HEADERDIR
之类的东西。
(例如,我正在尝试使用autoconf生成的配置脚本来完成
configure--includedir=/usr/include
的操作。)

通常,CMake软件包不需要允许用户根据每个组件修改安装路径

但如果包中包含CMake模块并使用其中的变量安装组件,则用户可能会通过设置其中一些变量来影响组件的安装路径。每个这样的变量都有一个形式

CMAKE_INSTALL_<dir>
CMAKE\u安装_
其中,
可能位于(根据文档):

BINDIR-用户可执行文件(bin)
SBINDIR-系统管理可执行文件(sbin)
LIBEXECDIR-程序可执行文件(libexec)
SYSCONFDIR-只读单机数据(etc)
SHAREDSTATEDIR-可修改的体系结构独立数据(com)
LOCALSTATEDIR-可修改的单机数据(var)
LIBDIR-对象代码库(lib或lib64或lib/on Debian)
INCLUDEDIR-C头文件(include)
非gcc(/usr/include)的OLDINCLUDEDIR-C头文件
DATAROOTDIR-只读体系结构独立的数据根(共享)
DATADIR-只读架构独立数据(DATAROOTDIR)
INFODIR-info文档(DATAROOTDIR/info)
LOCALEDIR-依赖于区域设置的数据(DATAROOTDIR/locale)
MANDIR-man文档(DATAROOTDIR/man)
DOCDIR-文档根目录(DATAROOTDIR/doc/PROJECT\u NAME)

注意,包不需要使用所有这些变量。例如,软件包可能对安装库使用变量CMAKE_INSTALL_LIBDIR,但在安装头时忽略CMAKE_INSTALL_INCLUDEDIR

BINDIR           - user executables (bin)
SBINDIR          - system admin executables (sbin)
LIBEXECDIR       - program executables (libexec)
SYSCONFDIR       - read-only single-machine data (etc)
SHAREDSTATEDIR   - modifiable architecture-independent data (com)
LOCALSTATEDIR    - modifiable single-machine data (var)
LIBDIR           - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
INCLUDEDIR       - C header files (include)
OLDINCLUDEDIR    - C header files for non-gcc (/usr/include)
DATAROOTDIR      - read-only architecture-independent data root (share)
DATADIR          - read-only architecture-independent data (DATAROOTDIR)
INFODIR          - info documentation (DATAROOTDIR/info)
LOCALEDIR        - locale-dependent data (DATAROOTDIR/locale)
MANDIR           - man documentation (DATAROOTDIR/man)
DOCDIR           - documentation root (DATAROOTDIR/doc/PROJECT_NAME)