The Hello, World sample introduces a Fuchsia component that prints “Hello, world” messages to the system log. The BUILD.gn
file contains rules that demonstrate building a single binar with shared and static libraries as dependencies.
hello.cc
: Main entrypoint for the component binaryhello_shared
: Shared library exposing functions to retrieve a greetinghello_static
: Static library exposing functions to retrieve a greetingStart a FEMU instance:
$ ./third_party/fuchsia-sdk/bin/femu.sh -N
Start a local package repository instance:
$ ./third_party/fuchsia-sdk/tools/x64/fserve --image qemu-x64
Run the build script to compile and package the sample:
$ ./scripts/build.sh
Publish the FAR package to your local package repository:
$ ./third_party/fuchsia-sdk/tools/x64/fpublish out/x64/hello_world.far
Launch the sample component using ffx component run
. This resolves the component from the package repository and starts it:
$ ./third_party/fuchsia-sdk/tools/x64/ffx component run fuchsia-pkg://fuchsia.com/hello_world#meta/hello_world.cm
View the greeting messages in the system log using ffx target log
:
$ ./third_party/fuchsia-sdk/tools/x64/ffx target log watch ... [hello_world][I] pthreads: hello [hello_world][I] Hello, world [hello_world][I] cppthreads: hello
Execute the unit test suite using ffx test run
. This resolves the component from the package repository and executes the tests:
$ ./third_party/fuchsia-sdk/tools/x64/ffx test run fuchsia-pkg://fuchsia.com/hello_world_test#meta/hello_world_test.cm
Verify that the test cases pass:
Running test 'fuchsia-pkg://fuchsia.com/hello_world_test#meta/hello_world_test.cm' [RUNNING] HelloWorldTest.True [stdout - HelloWorldTest.True] Running main() from ../../third_party/googletest/src/googletest/src/gtest_main.cc [PASSED] HelloWorldTest.True 1 out of 1 tests passed... fuchsia-pkg://fuchsia.com/hello_world_test#meta/hello_world_test.cm completed with result: PASSED