- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道如果我没有给它任何变量告诉它在哪里找到它,cmake 如何找到我的 llvm cmake 配置。
我是 LLVM 新手。我正在构建一个 Hello World LLVM pass。我在 Ubuntu 16.04 上。我的 LLVM 版本是 8.0.0。我的 CMake 版本是 3.5.1。
这是我的/CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.1)
project(FunctionDebugger)
find_package(LLVM REQUIRED CONFIG)
include_directories(${LLVM_INCLUDE_DIRS})
add_subdirectory(FunctionDebugger)
set(CMAKE_VERBOSE_MAKEFILE on)
这是 FunctionDebugger/CMakeLists.txt 文件:
add_library(LLVMFunctionDebugger MODULE
FunctionDebugger.cpp
)
set_target_properties(LLVMFunctionDebugger PROPERTIES
COMPILE_FLAGS "-fno-rtti -std=c++11"
)
我这样配置和编译:
mkdir build && cd build
cmake ..
make
它正确地编译并链接了一个名为 libLLVMFunctionDebugger.so 的共享库。我不明白的是 cmake 如何找到请求的包:
# <project-root>/CMakeLists.txt
find_package(LLVM REQUIRED CONFIG)
除了 LLVM 二进制文件的路径,我没有给它任何路径,也没有在环境中定义任何东西。我阅读了 CMake 文档,但它说 find_package
在 CMAKE_PREFIX_PATH 下的文件夹中查找。我使用 message(STATUS ${CMAKE_PREFIX_PATH})
打印该变量,输出为空。
最佳答案
您的设置看起来正确且清晰 CMake
正在寻找LLVMConfig.cmake
脚本(即 find_package
使用 LLVM 8 设置传播必要的 CMake
变量的脚本)。
在我有权访问的 Ubuntu 16.04 机器上,LLVMConfig.cmake
位于/usr/lib/llvm-8/lib/cmake/llvm/LLVMConfig.cmake
, 但在 /usr/lib/llvm-8/cmake/
中也有一个符号链接(symbolic link).所以自然的问题是:是否 CMake
知道它应该看那里吗?答案是是的。在 CMake docs您可以看到其中一个搜索路径是:
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (U)
您可以验证 usr
通过打印 CMAKE_SYSTEM_PREFIX_PATH
在前缀列表中.在我的机器上设置为:
/usr/local;/usr;/;/usr;/usr/local
最后可以打印LLVM_DIR
在你的CMake
用于检查 LLVM
版本/安装的脚本被 find_package
选中.变量在第一次执行 CMake
时将为空,然后 find_package
找到 LLVM-8,变量被设置并保存在 CMakeCache.txt
中.
希望这对您有所帮助。
编辑
这个答案是在 Ubuntu 16.04 上测试的,LLVM 8 通过 apt-get
安装在系统范围内的默认位置。 .如果你在别处安装 LLVM 8,那么有多种指向方式 CMake
到正确的位置,请参阅 find_package 的文档.编辑 PATH
变量就是其中之一:
- Search the standard system environment variables. This can be skipped if NO_SYSTEM_ENVIRONMENT_PATH is passed. Path entries ending in /bin or /sbin are automatically converted to their parent directories:
PATH
关于cmake - cmake 如何找到我的 llvm cmake 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57780600/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!