首页 > 解决方案 > CMake交叉编译:如何根据目标架构链接库

问题描述

我是cmake的新手。我想为 x86 和 arm 架构(在 x64 机器上)构建我的项目。我设置了两个工具链文件:x86.cmakearm.cmake,带有编译器的路径。我的项目使用我自己的预编译库,这些库位于 x86 和 arm 的不同路径中。所以问题是如何根据目标架构链接这些库?

我现在看到的方式是set(CMAKE_SYSTEM_PROCESSOR arm)arm.cmake工具链和 x86.cmakeset(CMAKE_SYSTEM_PROCESSOR x86)工具链中设置的,然后根据这个变量选择正确的库路径。

这是正确的方法吗?

标签: buildcmakecross-compiling

解决方案


通常使用find_library命令搜索链接所需的库。该命令使用了几个可以在工具链文件中设置的提示。例如:

因此,find_library对于使用的不同工具链,结果可能会有所不同。


推荐阅读