Cross Development Fundamentals
What is Cross Development?
Cross Development means developing applications where the development environment you’re currently working in is different from the target environment where the developed application will actually run.
For example, you could use Visual Studio on Windows 10 to create applications that run on Windows 10, but with the help of frameworks, you can also create applications that run on iOS, Android, etc. at the OS level. Xamarin, UWP, Flutter are examples of such frameworks.
What does it mean for environments to be different?
Someone might think, “Whether it’s Windows, Mac, or Android, coding is all the same, and the application-level functionality we want is all the same, so what’s different?”
But when you look under the hood, there are libraries that the application needs to function, and there need to be devices, kernels, operating systems, and architectures in place to run those libraries before the application can actually work.
We sometimes call the system-level work that handles these things primarily the framework layer.
- JAVA’s JavaRuntimeEnvironment
- Windows’ .NETFramework
- macOS’s Rosetta 2
And integrated development environments (IDEs) like Visual Studio and Android Studio make it easy for developers to develop by connecting compilers, linkers, debuggers, etc. with frameworks.
Someone might say, “Well, I’m going to develop using interpreter languages like Python, JavaScript, Ruby, SQL that don’t need compilation, so I don’t need to do Cross Development, right?”
If the libraries that your interpreter language needs don’t support the environment you want to run in, then applications written in that language become useless.
This is why we need to thoroughly consider environments to test and guarantee application performance and functionality.
Cross Compiling for Embedded Systems
Ref: Linux Foundation 2020 Conference
Embedded systems are one of the fields where Cross Development techniques must be used efficiently.
While embedded devices have excellent performance today, just a few years ago, it was almost impossible to dream of developing directly on those devices or compiling on them.
That’s why Cross build system-related Open Source Projects like OpenEmbedded, Buildroot, Yocto Project, and Bitbake have evolved.
Share this article
Found this helpful? Share it with your network
Join the Discussion
Share your thoughts and connect with other readers
댓글
GitHub 계정으로 로그인하여 댓글을 남겨보세요. 건설적인 의견과 질문을 환영합니다!
댓글을 불러오는 중...
댓글을 불러올 수 없습니다.