首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows上计算CMakeLists.txt中的命令?

如何在Windows上计算CMakeLists.txt中的命令?
EN

Stack Overflow用户
提问于 2017-01-30 12:30:40
回答 2查看 232关注 0票数 1

我想在CMakeLists.txt中设置一些变量,比如CMAKE_CXX__FLAGS

不幸的是,我不想将粘贴从终端复制到set()

相反,我希望在CMakeLists.txt中计算命令,并将变量设置为它们的输出。

一个例子是以下尝试:

代码语言:javascript
复制
set(x ${llvm-config --libs core})

message("${x}")

我想将llvm-config --libs core的输出绑定到x。但是,评估这个CMakeLists.txt的结果是输出:${llvm-config;--libs;core}

在CMakeLists.txt中计算命令的正确方法是什么?

当前的平台是Windows 10。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-30 13:37:48

您的问题是Cmake无法找到llvm-config。要解决这个问题,必须将Cmake指向程序的位置。

您需要编写如下所示的CMakeLists.txt:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.7)
find_package(LLVM REQUIRED CONFIG)

message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")

execute_process(COMMAND llvm-config --libs core  WORKING_DIRECTORY ${LLVM_TOOLS_BINARY_DIR} OUTPUT_VARIABLE x)
message(${x})

find_package(LLVM REQUIRED CONFIG)使LLVM特定的Cmake变量可用。

要使用llvm-config,必须将工作目录设置为${LLVM_TOOLS_BINARY_DIR}

票数 2
EN

Stack Overflow用户

发布于 2017-01-30 12:40:47

我想你是在找execute_process函数。

就你而言:

代码语言:javascript
复制
execute_process(COMMAND llvm-config --libs core OUTPUT_VARIABLE x)
message(${x})

execute_process有很多有用的选项,请看一下文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41936010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档