【发布时间】:2017-06-17 07:42:32
【问题描述】:
我提供了一个 Yocto SDK 来为嵌入式目标交叉构建应用程序。应用程序本身是使用 CMake 构建的。 SDK 设置脚本提供了许多必要的环境变量(如交叉编译器的位置、sysroot 等),到目前为止已经足够构建应用程序了。
然而,最近应用程序依赖于 Boost 库(通过 CMakeLists.txt 中的命令 find_package(Boost REQUIRED))。现在 CMake 抱怨它找不到库,即使它安装在 SDK sysroot 中。但是如果我直接在 Yocto 中构建应用程序,它就可以正常工作。
经过一番研究,发现 Yocto 生成了一个 toolchain.cmake 文件,该文件被添加到 cmake 调用中。在这个文件中,设置了变量CMAKE_FIND_ROOT_PATH,CMake需要它来查找库。使用这样的工具链文件,我也可以使用 SDK 进行构建。
现在我想知道 Yocto 是否提供任何机制来使用 SDK 导出此类工具链文件。或者,如果 SDK 提供脚本或其他东西来直接在 SDK 构建主机上自动创建工具链文件。
或者我应该告诉 SDK 的用户手动创建一个工具链文件并将其添加到他们的 cmake 调用中?
【问题讨论】: