我提供一个Yocto SDK来交叉编译嵌入式目标的应用程序,该应用程序本身使用CMake进行构建。SDK设置脚本提供了许多必要的环境变量(例如交叉编译器和sysroot的位置等),这已足以构建应用程序。
然而,最近应用程序依赖于Boost库(通过CMakeLists.txt中的
经过一些研究发现,Yocto会生成一个
现在我想知道Yocto是否提供任何机制来导出带有SDK的工具链文件。或者,如果SDK提供一个脚本或其他东西,在SDK构建主机上自动创建一个工具链文件。
或者,我只需告诉SDK用户手动创建工具链文件并将其添加到其cmake调用中吗?
然而,最近应用程序依赖于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调用中吗?
bitbake meta-ide-support
构建时,是否也可以创建此文件?我尝试创建了一个名为meta-ide-support.bbappend
的文件,其中设置了TOOLCHAIN_HOST_TASK
,但似乎没有任何作用。 - Georg P.meta-ide-support
。它是否构建了工具链?否则,TOOLCHAIN_HOST_TASK
将无法工作。为什么不将其添加到您的 SDK 构建中,而不是使用meta-ide-support
? - Andersmeta-ide-support
创建了一个脚本,我可以从Yocto构建目录外部源代码。如果该脚本还设置到OEToolchainConfig.cmake
和cmake
别名的路径,那就太好了。 - Georg P.