| Supported Targets | Linux |
|---|
This hello-world example builds a simple hello-world application for Linux. The compiler used is the Linux-gcc.
There are two major differences to an IDF application built for an ESP chip compared to an application build for Linux:
-
The entry-point on Linux is
int main(int argc, char **argv), instead ofvoid app_main(void)on an ESP chip. In this example for Linux, thevoid app_main(void)function is still included to make the connection to the IDF entry point clearer. However, it is simply called byint main(int argc, char **argv). Refer to the source file linux_host_app.cpp to see how it is used. -
The project-level CMakeLists.txt for Linux is different from that of a normal IDF application for an ESP chip. On Linux, there is an additional line
set(COMPONENTS main), which clears the common requirements (default dependencies usually included in all IDF applications). This is currently necessary as the Linux-host feature is still under developement. Otherwise, a lot of hardware-dependent code would be pulled in.
Build
Source the IDF environment as usual, then set the Linux target:
idf.py --preview set-target linux
sdkconfig.defaults sets the Linux target by default, so this not strictly necessary.
Once this is done, build the application:
idf.py build
Since this application runs on host, the flashing step is unnecessary.
Run
`build/linux_host_app.elf`