Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 autoconf AC_ARG_与_Cmake_Autotools - Fatal编程技术网

cmake autoconf AC_ARG_与

cmake autoconf AC_ARG_与,cmake,autotools,Cmake,Autotools,cmake与autoconf的AC_ARG_的等价物是什么?在autoconf中,我可以使用AC_ARG_WITH创建一个'--WITH-'命令行参数来配置,该参数允许我向SDK传递一个路径,该路径下是头和库。我如何在cmake中做同样的事情?我应该从env var读取路径吗?cmake可执行文件接受命令行中的变量定义 -D<var_name>[:<TYPE>]=<value> 如果设置了SDK\u DIR变量,其值(带有适当的后缀)将用于搜索SDK库(SD

cmake与autoconf的AC_ARG_的等价物是什么?在autoconf中,我可以使用AC_ARG_WITH创建一个'--WITH-'命令行参数来配置,该参数允许我向SDK传递一个路径,该路径下是头和库。我如何在cmake中做同样的事情?我应该从env var读取路径吗?

cmake
可执行文件接受命令行中的变量定义

-D<var_name>[:<TYPE>]=<value>
如果设置了
SDK\u DIR
变量,其值(带有适当的后缀)将用于搜索SDK库(
SDK\u LIB
)和包含目录(SDK\u include\u DIR)

如果未设置变量,或者基于变量值的搜索失败,则将在其他位置继续搜索,包括系统默认位置


实际上,在CMake中调整包的路径要比在autotools中使用
AC_ARG_提供的路径灵活得多。例如,可以使用
CMAKE\u PREFIX\u PATH
变量传递所有3d方包的公共根,或使用
CMAKE\u LIBRARY\u PATH
传递所有库的公共根。有关更多详细信息,请参阅和其他
find.*
命令的文档

许多3d party软件包提供了
Find.cmake
和/或
Config.cmake
脚本,因此只需使用命令即可对其进行搜索。这些脚本(以及
find_-package
本身)提供了调整搜索路径的方法,因此您的包根本不需要调整路径

find_library(SDK_LIB sdk PATHS ${SDK_DIR} PATH_SUFFIXES lib)
find_path(SDK_INCLUDE_DIR sdk.h PATHS ${SDK_DIR} PATH_SUFFIXES include)