首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置CMAKE_PREFIX_PATH不使用Android工具链

设置CMAKE_PREFIX_PATH不使用Android工具链
EN

Stack Overflow用户
提问于 2016-10-15 03:03:51
回答 1查看 2.8K关注 0票数 14

我正在使用Android工具链将CMake C和C++游戏移植到安卓上。

该项目的库依赖项存储在PROJECTDIR/android_dependencies中,我向CMake文件中添加了以下代码以使用它们(我检查了目录和文件是否存在)。

代码语言:javascript
复制
set(CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}/android_dependencies/${ANDROID_ABI}")

但是我的项目仍然说它找不到像OpenAL这样的依赖项(所有的库都被复制了)。

如果我将库复制到$NDK/platforms/android-9/usr/lib,并将文件包含到$NDK/platforms/android-9/usr/include中,则项目将正确编译。

我做错什么了?

我使用的是Ubuntu 16.04 64位

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-17 07:21:27

几乎所有的工具链都设置变量赛鲁特变量。除了其他之外,这个变量还可以为find_* CMake命令使用的路径添加额外的“根”。但默认情况下,也会搜索“非根”路径。

一些工具链可能设置变量CMAKE_FIND_ROOT_PATH_MODE_*,在搜索事物时调整CMAKE_SYSROOT的行为。

例如,将变量图书馆设置为ONLY使find_library只搜索“根”路径,因此找不到位于主机上的库。(此规则有例外,请参阅图书馆以获得更多详细信息)。

脚本CMakeLists.txt能够更改CMAKE_FIND_ROOT_PATH_MODE_*变量的值,并将它们设置为BOTH (或只清除它们)。但是通常情况下,这可能会破坏工具链(因此其他find_library调用会在主机上找到一些东西,而它们却根本找不到任何东西)。

首选的方法是遵循工具链策略,并在构建包本身之前将所有包的前提before安装到sysroot中。

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

https://stackoverflow.com/questions/40054495

复制
相关文章

相似问题

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