CMake命令行LD_LIBRARY_PATH和C_INCLUDE_DIRS

use*_*950 6 build cmake environment-variables

有没有办法从cmake命令行传递C_INCLUDE_DIRS和LD_LIBRARY_PATH,或者有办法设置env以便CMAKE可以找到它们?

小智 11

尚不清楚您打算如何使用这些变量。这里有一些可能性:

  1. 在CMake脚本中,您可以使用语法读取环境变量$ENV{<VARIABLE_NAME>}。因此,您CMakeLists.txt可以拥有类似

    message( "Found environment variable LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}" )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果要添加此变量中包含的位置以供CMake目标可执行文件和库使用,则可以使用link_directories()命令作为

    link_directories( $ENV{LD_LIBRARY_PATH} )
    
    Run Code Online (Sandbox Code Playgroud)
  3. 或者,如果您有其他人的项目,并且想指示CMake在某些其他目录中查找库,则可以使用CMAKE_PREFIX_PATHCMAKE_LIBRARY_PATH。例如,要在命令行中传递这些变量,您可以执行

    cmake -D CMAKE_PREFIX_PATH=/path/to/custom/location
    
    Run Code Online (Sandbox Code Playgroud)