CMake Error: ...Missing variable is: CMAKE_FIND_LIBRARY_
来源:互联网 发布:男友活好的体验知乎 编辑:程序博客网 时间:2024/06/16 19:14
今天在使用cmake的find_library
命令时,cmake居然报错:
CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
Missing variable is:
CMAKE_FIND_LIBRARY_PREFIXES
意思就是CMAKE_FIND_LIBRARY_PREFIXES
这个变量没有定义。代码片段如下:
#在给定义的搜索路径中查找OpenCL库find_library(OpenCL_LIBRARY NAMES OpenCL PATHS ENV "PROGRAMFILES(X86)" ENV AMDAPPSDKROOT ENV INTELOCLSDKROOT ENV CUDA_PATH ENV NVSDKCOMPUTE_ROOT ENV ATISTREAMSDKROOT PATH_SUFFIXES "AMD APP/lib/x86_64" lib/x86_64 lib/x64 OpenCL/common/lib/x64)# 定义cmake最低版本要求 cmake_minimum_required( VERSION 2.6 ) # 定义项目名称project( facecl)# 如果未指定build类型(DEBUG/RELEASE),则默认为RELEASEif(NOT CMAKE_BUILD_TYPE ) set(CMAKE_BUILD_TYPE RELEASE)endif()
CMAKE_FIND_LIBRARY_PREFIXES
是cmake默认定义的变量啊,怎么会没有定义?
没想明白,后来发现是因为find_library
代码的位置不对,当时我只是为了测试find_library
是否有效,随便将语句放在CMakeLists.txt的最前面了,才会出现这个报错。
将find_library
放在project( facecl)
之后
就能正确找到指定的library。
通过message
命令打印变量信息表明:
在project( facecl)
语句之前,CMAKE_FIND_LIBRARY_PREFIXES
这个变量的确没有初始化(CMAKE_STATIC_LIBRARY_SUFFIX
、CMAKE_IMPORT_LIBRARY_SUFFIX
等这些变量也是一样),在project( facecl)
之后,它才被初始化成正确的值,所以写cmake代码的时候,一定要注意尽可能将project语句放在代码最前面,就可以避免这些低级且烦人的报错带来的麻烦。
0 0
- CMake Error: ...Missing variable is: CMAKE_FIND_LIBRARY_
- MinGW error: Lapack is missing
- The evil CMake -- Compile bug, missing ')', error line number
- eclipse error "'.JETEmitters' is missing required library"
- Error : cause android.compileSdkVersion is missing
- error: variable missing(use:--variable API_KEY=value)问题的解决
- error: variable missing(use:--variable API_KEY=value)问题的解决
- ionic+极光推送:Error: Variable(s) missing (use: --variable APP_KEY=value).
- SVN Error : is scheduled for addition, but is missing
- error: invalid arch independent ELF magic. error: BOOTMGR is missing.
- error: function 'p' is initialized like a variable|
- ERROR: Configuration variable JAVA_HOME or JAVACMD is not defined
- iOS开发中variable is not assignable missing block的解决办法
- iOS开发中variable is not assignable missing block的解决办法
- variable "channel_Typ87): error: #757: variable "channel_Typedef" is not a type name extern cha
- CMake Error: shared library text segment is not shareable
- VS2012 error : Required file tracker.exe is missing 解决办法
- ubuntu 14.04 amd64 解决 phpmyadmin error “json extension is missing.“
- 对web的补充
- 动态规划入门
- Leetcode 57. Insert Interval
- STM8变量的存储
- jQuery全屏滚动插件FullPage.js中文帮助文档API
- CMake Error: ...Missing variable is: CMAKE_FIND_LIBRARY_
- 如何解决myeclipse导入工程出现错误
- nyoj_94 cigarettes
- 7.Linux swap分区的使用,主引导记录(MBR)的备份、dd,df,du命令的使用
- mysql的innodb_flush_log_at_trx_commit参数深有体会
- 使用DialogFragment时影藏Title
- 面向对象三大基本特性,五大基本原则
- 语法高亮自定义颜色主题配置(Code::Blocks)
- 一个合格的程序员应该读过哪些书