Dostarczam zestaw SDK do Yocto, aby utworzyć kompilację aplikacji docelowej. Sama aplikacja jest zbudowana przy użyciu CMake. Skrypt instalacyjny zestawu SDK udostępnia wiele niezbędnych zmiennych środowiskowych (takich jak lokalizacja cross-kompilatora, sysroot itp.), Które do tej pory wystarczały do zbudowania aplikacji.Zestaw SDK Yocto z plikiem cmake toolchain
Jednak od niedawna aplikacja ma zależność od biblioteki Boost (za pomocą polecenia find_package(Boost REQUIRED)
w CMakeLists.txt). Teraz CMake skarży się, że nie może znaleźć biblioteki, mimo że jest zainstalowana w sysroot SDK. Ale jeśli zbuduję aplikację bezpośrednio w Yocto, działa dobrze.
Po kilku badaniach okazało się, że Yocto generuje plik toolchain.cmake
, który jest dodawany do wywołania cmake. W tym pliku ustawiana jest zmienna CMAKE_FIND_ROOT_PATH
, którą program CMake musi znaleźć w bibliotekach. Korzystając z takiego pliku toolchain, mogę również budować przy użyciu SDK.
Teraz zastanawiam się, czy Yocto zapewnia mechanizm eksportowania takiego pliku toolchain z SDK. Lub, jeśli SDK udostępnia skrypt lub coś, co automatycznie tworzy plik toolchain bezpośrednio na hoście budowania SDK.
A może po prostu powiem użytkownikom zestawu SDK, aby ręcznie utworzył plik toolchain i dodał go do ich wywołania cmake?
Wielkie dzięki Anders, to nie pierwszy raz, kiedy mi pomagasz! –
Jeszcze jedno pytanie - czy można również utworzyć ten plik podczas budowania za pomocą 'bitbake meta-ide-support'? Próbowałem utworzyć plik 'meta-ide-support.bbappend', który ustawia' TOOLCHAIN_HOST_TASK', ale wydaje się, że nic nie robi. –
Nigdy nie próbowałem 'meta-ide-wsparcia'. Czy buduje nawet toolchain? W przeciwnym razie, 'TOOLCHAIN_HOST_TASK' nie będzie działać. Dlaczego nie dodasz go do swojego zestawu SDK-build zamiast "meta-ide-support"? – Anders